home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / amos / ADV-ITA.lha / Adventures / Adventures.AMOS / Adventures.amosSourceCode
AMOS Source Code  |  2002-09-27  |  391KB  |  11,908 lines

  1. '-> Adventures Conceiver by Stefano Regattin 
  2. 'i> 12 giugno 1996 
  3. 'm> 13,14,15,16,17,19,20,21,22,26,27,28,30 giugno 1996 
  4. 'm> 1,2,3,4,5,6,13,14,15,17,18,20,21,23 luglio 1996
  5. 'm> 4,17,31 agosto 1996
  6. 'm> 7,14,15,16,28 settembre 1996 
  7. 'm> 2,8,20,21 ottobre 1996 
  8. 'm> 1,2,5 novembre 1996
  9. 'm> 23,25 febbraio 1997
  10. 'm> 1,2,3,4,5,6,7,8 marzo 1997 
  11. 'm> 29 maggio 1997 
  12. 'm> 6,12,13,14 giugno 1997 
  13. 'm> 29 agosto 1997 
  14. 'm> 10,19,28,29,30 settembre 1997
  15. 'm> 1,6,31 ottobre 1997
  16. 'm> 1,3,4,5,6,7,8,9,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 novembre 1997 
  17. 'm> 1,2,3,4,5,6,7,8,9,11,12,13,14,16,17,22 dicembre 1997 
  18. 'm> 4 gennaio 1998 
  19. 'm> 28,31 marzo 1998 
  20. 'm> 22,23,24,25,26,27,28,30 aprile 1998
  21. 'm> 1,2,5,7,8,9,10 maggio 1998 
  22. 'm> 13,15,16,17,18,19,20,21,23,26,27,28,29 giugno 1998 
  23. 'm> 2,3,5,6,7,10,11,12,13,16,17,18,19,20,21,22,25,28,30,31 luglio 1998 
  24. 'm> 2,3,4,5,6,7,9,10,15 agosto 1998  
  25. 'm> 7,11,20 settembre 1998   
  26. 'm> 5,6,7,8,9,10,14,16,17,20,23,27,28 novembre 1998        
  27. 'm> 4,5,6,7,11,15,17,22,24,29,31 dicembre 1998       
  28. 'm> 5,14 gennaio 1999  
  29. 'm> 2,10,15,27 febbraio 1999   
  30. 'm> 1,9 marzo 1999 
  31. 'm> 14 ottobre 1999
  32. 'm> 1,3,11,14,23 novembre 1999     
  33. 'm> 20 dicembre 1999 
  34. 'm> 24 febbraio 2000 
  35. 'm> 22 agosto 2000 
  36. 'm> 8 gennaio 2001 
  37. 'm> 3 aprile 2001
  38. 'm> 3 giugno 2001
  39. 'm> 9 luglio 2001
  40. 'm> 14 ottobre 2001
  41. '----------------------------------------------------------------------------- 
  42. 'Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0. Pu�
  43. 'essere liberamente distribuito. Pu� essere modificato, purch� mi si citi nel
  44. 'programma finale risultante. Se si decide di utilizzarlo, spedire 5 Euro al 
  45. 'seguente nominativo ed indirizzo: Stefano Maria Regattin, piazza Pietro 
  46. 'Gasparri 4/U, 20161 Milano, Italia. Buon divertimento, grazie e ciao! 
  47. '----------------------------------------------------------------------  
  48.  
  49. Set Buffer 910
  50.  
  51. FILEREQUESTERMUSICA=False
  52.  
  53. Data "E' l'alba","E' mattina","E' giorno","E' pomeriggio","E' il tramonto"
  54. Data "E' sera","E' notte"
  55. Data "Il cielo si sta schiarendo","Il sole si sta alzando","Il sole ï¿½ alto"
  56. Data "Il sole sta calando","Il cielo si sta oscurando"
  57. Data "La luna si sta alzando","La luna ï¿½ alta","La luna sta calando"
  58. Data "E' nuvoloso","Sta piovendo","Sta nevicando","Sta grandinando"
  59. Data "C'� la nebbia","E' buio"
  60.  
  61. Data "N","Nord","NE","NordEst","E","Est","SE","SudEst","S","Sud","SO"
  62. Data "SudOvest","O","Ovest","NO","NordOvest","Sopra","Sopra","Sotto","Sotto"
  63.  
  64. Data "albero","alberi",100000,"albero rotto","alberi rotti",75000,%10000000,0
  65. Data "arco","archi",3000,"arco rotto","archi rotti",1500,%10001000000,9
  66. Data "arancia","arance",250,"buccia di arancia","bucce di arancia",10,1,1
  67. Data "banana","banane",300,"buccia di banana","bucce di banana",15,1,1
  68. Data "bastone","bastoni",1000,"bastone rotto","bastoni rotti",750,%1000000,2
  69. Data "cedro","cedri",200,"buccia di cedro","bucce di cedro",10,1,1
  70. Data "coltello","coltelli",2000,"coltello rotto","coltelli rotti",1000,%1000000,10
  71. Data "dattero","datteri",25,"guscio di dattero","gusci di dattero",5,1,1
  72. Data "fico","fichi",220,"buccia di fico","bucce di fico",10,1,1
  73. Data "foglietto","foglietti",2,"foglietto strappato","foglietti strappati",1,%1000,0
  74. Data "fragola","fragole",10,"picciolo di fragola","piccioli di fragola",1,1,1
  75. Data "freccia","frecce",100,"freccia rotta","freccie rotte",50,%101000000,1
  76. Data "limone","limoni",200,"buccia di limone","bucce di limone",10,1,1
  77. Data "maglia","maglie",5000,"maglia rotta","maglie rotte",2500,%100,19
  78. Data "mandarino","mandarini",175,"buccia di mandarino","bucce di mandarino",10,1,1
  79. Data "mapo","mapo",200,"buccia di mapo","bucce di mapo",10,1,1
  80. Data "masso","massi",50000,"masso rotto","massi rotti",50000,0,0
  81. Data "mela","mele",250,"torsolo di mela","torsoli di mela",50,1,1
  82. Data "pera","pere",250,"torsolo di pera","torsoli di pera",50,1,1
  83. Data "pompelmo","pompelmi",275,"buccia di pompelmo","bucce di pompelmo",10,1,1
  84. Data "spada","spade",7500,"spada rotta","spade rotte",5000,%1000000,20
  85.  
  86. Data "anarchico","anarchici","bandito","banditi","barbaro","barbari"
  87. Data "bastardo","bastardi","bravotto","bravotti","cretino","cretini"
  88. Data "debosciato","debosciati","deficiente","deficienti"
  89. Data "delinquente","delinquenti","estremista","estremisti"
  90. Data "fanatico","fanatici","fanfarone","fanfaroni","fellone","felloni"
  91. Data "fetente","fetenti","fessacchiotto","fessacchiotti","fesso","fessi"
  92. Data "guerrafondaio","guerrafondai","idiota","idioti","imbecille","imbecilli"
  93. Data "malfattore","malfattori","maniaco","maniaci","maramaldo","maramaldi"
  94. Data "negriero","negrieri","ribelle","ribelli","rimbambito","rimbambiti"
  95. Data "pervertito","pervertiti","pirata","pirati","pirlone","pirloni"
  96.  
  97. Data "Acqua",5
  98. Data "Bosco",2
  99. Data "Collina",1
  100. Data "Foresta",4
  101. Data "Ghiaccio",3
  102. Data "Montagna",2
  103. Data "Neve",3
  104. Data "Oasi",0
  105. Data "Palude",3
  106. Data "Pianura",0
  107. Data "Roccia",4
  108. Data "Sabbia",1
  109.  
  110. Data "Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0"
  111. Data ". Pu� essere liberamente distribuito. Pu� essere modificato, purch� mi "
  112. Data "si citi nel programma finale risultante. Se si decide di utilizzarlo, s"
  113. Data "pedire 5 Euro al seguente nominativo ed indirizzo: Stefano Maria Regatt"
  114. Data "in, piazza Pietro Gasparri 4/U, 20161 Milano, Italia. Buon divertimento"
  115. Data ", grazie e ciao!"
  116.  
  117. MESSAGGIO3$="Adventures Conceiver by Stefano Maria Regattin"
  118.  
  119. PROLOGO$="L'avventura preimpostata ï¿½ dimostrativa. Non c'� uno scopo definito"
  120. PROLOGO$=PROLOGO$+". Gli altri personaggi prenderanno un'oggetto e cercherann"
  121. PROLOGO$=PROLOGO$+"o di usarlo su un personaggio presente dove si trovano, pe"
  122. PROLOGO$=PROLOGO$+"r cui anche sul tuo personaggio; dopo di ci� si muoveranno"
  123. PROLOGO$=PROLOGO$+". Usa tutti i comandi e guarda cosa succede."
  124.  
  125. _INTERFACCIA$="SIze 320,144;"
  126. _INTERFACCIA$=_INTERFACCIA$+"BAse ScreenWidth SizeX- 2/ ,ScreenHeight SizeY- 2/;"
  127. _INTERFACCIA$=_INTERFACCIA$+"INk 1,0,0;GraphicBox 0,0,SizeX 1-,SizeY 1-;"
  128. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'EsseErre Software Solutions';"
  129. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,8,0 VA,0,1;"
  130. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'presenta...';"
  131. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,16,0 VA,0,1;"
  132. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'* Adventures Conceiver 1.5 *';"
  133. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,32,0 VA,0,1;"
  134. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'by Stefano Maria Regattin';"
  135. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,48,0 VA,0,1;"
  136. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Se decidi di utilizzarlo';"
  137. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,64,0 VA,0,1;"
  138. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'spedisci cinque Euro';"
  139. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,80,0 VA,0,1;"
  140. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'al seguente indirizzo:';"
  141. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,96,0 VA,0,1;"
  142. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'piazza Pietro Gasparri, 4/U';"
  143. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,112,0 VA,0,1;"
  144. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'20161 Milano - Italia';"
  145. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,128,0 VA,0,1;"
  146. _INTERFACCIA$=_INTERFACCIA$+"RunUntil 0,%1111;EXit;"
  147.  
  148. BANCO=65535 : BANCOMODULO=1023 : NUMMASE=31 : NUMMASCO=255 : NUMMASL=255
  149. NUMMASO=255 : NUMMASP=255 : NUMMASR=255 : NUMMASS=255 : PESOS=1
  150. '----------------------------------------------------------------------------
  151. 'Per un difetto di AMOS Professional non si pu� assegnare un valore maggiore 
  152. ' di 1023 al banco di memoria da usare con il comando Track Load e Track Play
  153. '----------------------------------------------------------------------------- 
  154. Global EPILOGO$,FILE$,MESSAGGIO1$,MESSAGGIO3$,MERITI$,NOMEFILE$,PROLOGO$
  155. Global _INTERFACCIA$
  156. Global ANEMICI,BANCO,BANCOMODULO,CATEGORIADEGLIOGGETTI,CARATTEREMESSAGGIO
  157. Global COMPIUTAAZIONE,CONDIZIONEG,EDIFICIO,FILEREQUESTERMUSICA
  158. Global INEMICITISVEGLIANO,INEMICISVEGLIANOPERSONAGGIOP,LUOGO
  159. Global M0DOVISUALIZZAZIONETEMPO,M0DIFICA,NUMEROCO,NUMEROE,NUMEROL,NUMERON
  160. Global NUMEROO,NUMEROP,NUMEROR,NUMMASCO,NUMMASE,NUMMASL,NUMMASO,NUMMASP
  161. Global NUMMASR,NUMMASS,OGGETTO,OGGETTOUSANTE,OGGETTOUSATO,PERSONAGGIO
  162. Global PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO,PESOS,REGIONE,SENZAMEMORIA,STANZA
  163. Global TEMP0TRASCORSO,ULTIMALINEA,_MUSICA
  164. Dim CONDIZIONEG$(13),DESCRIZIONECO$(NUMMASCO),DESCRIZIONEE$(NUMMASE)
  165. Dim DESCRIZIONEL$(NUMMASL),DESCRIZIONEP$(NUMMASP)
  166. Dim DESCRIZIONES$(NUMMASS,NUMMASE),DREZIONE$(9),DREZIONEL$(9),FASEG$(6)
  167. Dim NOMEE$(NUMMASE),NOMEL$(NUMMASL),NOMEP$(NUMMASP),NOMEPCO$(NUMMASCO)
  168. Dim NOMEPN$(27),NOMEPRO$(NUMMASCO),NOMER$(NUMMASR),NOMES$(NUMMASS,NUMMASE)
  169. Dim NOMESCO$(NUMMASCO),NOMESN$(27),NOMESRO$(NUMMASCO),TESTOO$(1),TIPOL$(11)
  170. Dim AZIONEP(7,NUMMASP),CATEGORIAO(NUMMASO),CAMMINOP(NUMMASP)
  171. Dim C0STITUZIONEP(NUMMASP),DESTREZZAP(NUMMASP),DREZIONEL(9,NUMMASL)
  172. Dim DREZIONEPRESAP(NUMMASP),DREZIONEOPPOSTAAQUELLAPRESAP(NUMMASP)
  173. Dim DREZIONES(9,NUMMASS,NUMMASE),FINEA(7,NUMMASP),F0RZAP(NUMMASP)
  174. Dim INIZIOSONNOP(NUMMASP),LUOGODIDESTINAZIONEP(NUMMASP),NUMEROS(NUMMASE)
  175. Dim OGGETTODATOOLASCIATO(NUMMASCO),OGGETTODELPERSONAGGIO0(NUMMASCO)
  176. Dim OGGETTIDIA(NUMMASCO),OGGETTINELLUOGO(NUMMASCO),PARAAAZIONEP(7,NUMMASP)
  177. Dim PARABAZIONEP(7,NUMMASP),PARACAZIONEP(7,NUMMASP),PARATIPOCO(NUMMASCO)
  178. Dim PARATIPOL(11),PERSONAGGIOVISIBILEP(NUMMASP),PESOCO(NUMMASCO)
  179. Dim PESONETTOP(NUMMASP),PESOP(NUMMASP),PESORESTOCO(NUMMASCO)
  180. Dim POSIZIONEA(NUMMASP),POSIZIONEE(NUMMASL),POSIZIONEO(NUMMASO)
  181. Dim POSIZIONEP(NUMMASP),REGIONEL(NUMMASL),RESISTENZAP(NUMMASP)
  182. Dim RESTODELPERSONAGGIO0(NUMMASCO),RESTIDIA(NUMMASCO),RESTINELLUOGO(NUMMASCO)
  183. Dim SOLDIL(NUMMASL),SOLDIP(NUMMASP),SOLDIS(NUMMASS,NUMMASE)
  184. Dim SOLDIRICEVUTIP(NUMMASP),SONNOP(NUMMASP),TEMP0DIATTRAVERSAMENTOP(NUMMASP)
  185. Dim TESTOO(NUMMASO),TIPOCO(NUMMASCO),TIPOL(NUMMASL),TIPOO(NUMMASO)
  186. Dim TIPOP(NUMMASP)
  187. Global CONDIZIONEG$(),DESCRIZIONECO$(),DESCRIZIONEE$(),DESCRIZIONEL$()
  188. Global DESCRIZIONEP$(),DESCRIZIONES$(),DREZIONE$(),DREZIONEL$(),FASEG$()
  189. Global NOMEE$(),NOMEL$(),NOMEP$(),NOMEPCO$(),NOMEPN$(),NOMEPRO$(),NOMER$()
  190. Global NOMES$(),NOMESCO$(),NOMESN$(),NOMESRO$(),TESTOO$(),TIPOL$()
  191. Global AZIONEP(),CATEGORIAO(),CAMMINOP(),C0STITUZIONEP(),DESTREZZAP()
  192. Global DREZIONEL(),DREZIONEPRESAP(),DREZIONEOPPOSTAAQUELLAPRESAP(),DREZIONES()
  193. Global FINEA(),F0RZAP(),INIZIOSONNOP(),LUOGODIDESTINAZIONEP(),NUMEROS()
  194. Global OGGETTODATOOLASCIATO(),OGGETTODELPERSONAGGIO0(),OGGETTIDIA()
  195. Global OGGETTINELLUOGO(),PARAAAZIONEP(),PARABAZIONEP(),PARACAZIONEP()
  196. Global PARATIPOCO(),PARATIPOL(),PERSONAGGIOVISIBILEP(),PESOCO(),PESONETTOP()
  197. Global PESOP(),PESORESTOCO(),POSIZIONEA(),POSIZIONEE(),POSIZIONEO()
  198. Global POSIZIONEP(),REGIONEL(),RESISTENZAP(),RESTODELPERSONAGGIO0(),RESTIDIA()
  199. Global RESTINELLUOGO(),SOLDIL(),SOLDIP(),SOLDIS(),SOLDIRICEVUTIP(),SONNOP()
  200. Global TEMP0DIATTRAVERSAMENTOP(),TESTOO(),TIPOCO(),TIPOL(),TIPOO(),TIPOP()
  201. Proc SETTASCHERMO
  202. Proc ARCOBALENO
  203. For A=0 To 6
  204.  Read DATO$ : FASEG$(A)=DATO$
  205. Next A
  206. For A=0 To 13
  207.  Read DATO$ : CONDIZIONEG$(A)=DATO$
  208. Next A
  209. For A=0 To 9
  210.  Read DATO$ : DREZIONEL$(A)=DATO$
  211.  Read DATO$ : DREZIONE$(A)=DATO$
  212. Next A
  213. Proc INIZIALIZZALEVARIABILI
  214. NUMEROCO=20 : NUMEROE=0 : NUMEROL=127 : NUMEROO=127 : NUMEROP=20 : NUMEROR=1
  215. NUMEROS(0)=0
  216. Proc _ORDINALUOGHI[127,8,0,True]
  217. For A=0 To NUMEROCO
  218.  Read DATO$ : NOMESCO$(A)=DATO$
  219.  Read DATO$ : NOMEPCO$(A)=DATO$
  220.  Read DATO : PESOCO(A)=DATO
  221.  Read DATO$ : NOMESRO$(A)=DATO$
  222.  Read DATO$ : NOMEPRO$(A)=DATO$
  223.  Read DATO : PESORESTOCO(A)=DATO
  224.  Read DATO : TIPOCO(A)=DATO
  225.  Read DATO : PARATIPOCO(A)=DATO
  226. Next A
  227. If NUMEROE>-1
  228.  For A=0 To NUMEROE
  229.   POSIZIONEE(A)=Rnd(NUMEROL)
  230.   For B=0 To NUMEROS(A)
  231.    SOLDIS(B,A)=Rnd(19)
  232.   Next B
  233.  Next A
  234. End If 
  235. For A=0 To 27
  236.  Read DATO$ : NOMESN$(A)=DATO$
  237.  Read DATO$ : NOMEPN$(A)=DATO$
  238. Next A
  239. For A=0 To 11
  240.  Read DATO$ : TIPOL$(A)=DATO$
  241.  Read DATO : PARATIPOL(A)=DATO
  242. Next A
  243. Randomize Timer
  244. For A=0 To NUMEROL
  245.  TIPOL(A)=Rnd(11)
  246.  SOLDIL(A)=Rnd(1)
  247. Next A
  248. For A=0 To NUMEROO
  249.  CATEGORIAO(A)=Rnd(NUMEROCO)
  250.  POSIZIONEO(A)=Rnd(NUMEROL)
  251. Next A
  252. For A=0 To NUMEROP
  253.  C0STITUZIONEP(A)=Rnd(99)+1
  254.  DESTREZZAP(A)=Rnd(99)+1
  255.  F0RZAP(A)=Rnd(99)+1
  256.  PESOP(A)=Rnd(70)+50
  257.  POSIZIONEP(A)=Rnd(NUMEROL)
  258.  LUOGODIDESTINAZIONEP(A)=-1
  259.  DREZIONEPRESAP(A)=-1
  260.  DREZIONEOPPOSTAAQUELLAPRESAP(A)=0
  261.  RESISTENZAP(A)=C0STITUZIONEP(A)
  262.  DATO=Rnd(1) : If DATO=1 Then Bset 1,TIPOP(A) Else Bclr 1,TIPOP(A)
  263.  DATO=Rnd(1) : If DATO=1 Then Bset 3,TIPOP(A) Else Bclr 3,TIPOP(A)
  264.  DATO=Rnd(9)+1
  265.  SOLDIP(A)=DATO
  266.  Add PESONETTOP(A),DATO*PESOS
  267.  If A>0
  268.   INIZIOSONNOP(A)=Rnd(360)+1080
  269.   AZIONEP(0,A)=17
  270.   PARAAAZIONEP(0,A)=1
  271.   AZIONEP(1,A)=27
  272.   PARAAAZIONEP(1,A)=256
  273.   AZIONEP(2,A)=27
  274.   PARAAAZIONEP(2,A)=256
  275.   AZIONEP(3,A)=27
  276.   PARAAAZIONEP(3,A)=256
  277.   AZIONEP(4,A)=27
  278.   PARAAAZIONEP(4,A)=256
  279.   AZIONEP(5,A)=27
  280.   PARAAAZIONEP(5,A)=256
  281.   AZIONEP(6,A)=27
  282.   PARAAAZIONEP(6,A)=256
  283.   AZIONEP(7,A)=16
  284.  End If 
  285. Next A
  286. '----------------
  287. 'Scopo del gioco 
  288. AZIONEP(7,0)=0
  289. '------------
  290. 'PARametro A 
  291. PARAAAZIONEP(7,0)=0
  292. '------------
  293. 'PARametro B 
  294. PARABAZIONEP(7,0)=0
  295. '------------
  296. 'PARametro C 
  297. PARACAZIONEP(7,0)=0
  298. '------------------- 
  299. For A=64 To 127
  300.  REGIONEL(A)=1
  301. Next A
  302. Read DATO$ : MERITI$=DATO$
  303. Read DATO$ : MERITI$=MERITI$+DATO$
  304. Read DATO$ : MERITI$=MERITI$+DATO$
  305. Read DATO$ : MERITI$=MERITI$+DATO$
  306. Read DATO$ : MERITI$=MERITI$+DATO$
  307. Read DATO$ : MERITI$=MERITI$+DATO$
  308. TESTOO$(0)=MERITI$
  309. If _MUSICA=True Then Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  310. TASTOPREMUTO$="d"
  311. Repeat 
  312.  If TASTOPREMUTO$="d" Then Proc MOSTRAILDESTINODELGIOCO
  313.  If TASTOPREMUTO$="e" Then Proc MOSTRAGLIEDIFICI
  314.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Proc MOSTRALESTANZE
  315.  If TASTOPREMUTO$="k" Then Proc MOSTRALECATEGORIEDEGLIOGGETTI
  316.  If TASTOPREMUTO$="l" Then Proc MOSTRAILUOGHI
  317.  If TASTOPREMUTO$="o" Then Proc MOSTRAGLIOGGETTI
  318.  If TASTOPREMUTO$="p" Then Proc MOSTRAIPERSONAGGI
  319.  If TASTOPREMUTO$="r" Then Proc MOSTRALEREGIONI
  320. Until TASTOPREMUTO$=Chr$(27)
  321. Track Loop Of : Track Stop : Rainbow Del 0 : Screen Close 0
  322. Erase BANCOMODULO : End 
  323. Procedure ARCOBALENO
  324.  Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  325.  Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  326.  Set Rainbow 0,1,16,"","",""
  327.  For LINEA=0 To 15 : Read DATO : Rain(0,LINEA)=DATO : Next LINEA
  328.  If Ntsc Then LUNGHEZZAARCOBALENO=223 Else LUNGHEZZAARCOBALENO=271
  329.  Rainbow 0,2,0,LUNGHEZZAARCOBALENO
  330. End Proc
  331. Procedure _ASPETTA
  332.  Wait 200
  333. End Proc
  334. Procedure AZIONIALTRIPERSONAGGI
  335.  While COMPIUTAAZIONE>0
  336.   For P=1 To NUMEROP
  337.    If RESISTENZAP(P)>0
  338.     If Btst(2,TIPOP(P))=False
  339.      Proc FAIDORMIREGLIALTRIPERSONAGGI[P]
  340.      If AZIONEP(POSIZIONEA(P),P)>0
  341.       If AZIONEP(POSIZIONEA(P),P)=1
  342.        If FINEA(POSIZIONEA(P),P)=False
  343.         Proc DAIAPAO[POSIZIONEA(P),P]
  344.        End If 
  345.       Else If AZIONEP(POSIZIONEA(P),P)=2
  346.        If FINEA(POSIZIONEA(P),P)=False
  347.         Proc DAIAPAOB[POSIZIONEA(P),P]
  348.        End If 
  349.       Else If AZIONEP(POSIZIONEA(P),P)=3
  350.        If FINEA(POSIZIONEA(P),P)=False
  351.         Proc DAIAPAOTB[POSIZIONEA(P),P]
  352.        End If 
  353.       Else If AZIONEP(POSIZIONEA(P),P)=4
  354.        If FINEA(POSIZIONEA(P),P)=False
  355.         Proc DAIAPAP[POSIZIONEA(P),P]
  356.        End If 
  357.       Else If AZIONEP(POSIZIONEA(P),P)=5
  358.        If FINEA(POSIZIONEA(P),P)=False
  359.         Proc DAIAPPA[POSIZIONEA(P),P]
  360.        End If 
  361.       Else If AZIONEP(POSIZIONEA(P),P)=6
  362.        If FINEA(POSIZIONEA(P),P)=False
  363.         Proc DAIAPABO[POSIZIONEA(P),P]
  364.        End If 
  365.       Else If AZIONEP(POSIZIONEA(P),P)=7
  366.        If FINEA(POSIZIONEA(P),P)=False
  367.         Proc DAIAPABOC[POSIZIONEA(P),P]
  368.        End If 
  369.       Else If AZIONEP(POSIZIONEA(P),P)=8
  370.        If FINEA(POSIZIONEA(P),P)=False
  371.         Proc DAIAPABOTC[POSIZIONEA(P),P]
  372.        End If 
  373.       Else If AZIONEP(POSIZIONEA(P),P)=9
  374.        If FINEA(POSIZIONEA(P),P)=False
  375.         Proc DAIAPABP[POSIZIONEA(P),P]
  376.        End If 
  377.       Else If AZIONEP(POSIZIONEA(P),P)=10
  378.        If FINEA(POSIZIONEA(P),P)=False
  379.         Proc DAIAPAPB[POSIZIONEA(P),P]
  380.        End If 
  381.        '    ------------------------------------  
  382.       Else If AZIONEP(POSIZIONEA(P),P)=11
  383.        If FINEA(POSIZIONEA(P),P)=False
  384.         Proc LASCIAAO[POSIZIONEA(P),P]
  385.        End If 
  386.       Else If AZIONEP(POSIZIONEA(P),P)=12
  387.        If FINEA(POSIZIONEA(P),P)=False
  388.         Proc LASCIAAOB[POSIZIONEA(P),P]
  389.        End If 
  390.       Else If AZIONEP(POSIZIONEA(P),P)=13
  391.        If FINEA(POSIZIONEA(P),P)=False
  392.         Proc LASCIAAOTB[POSIZIONEA(P),P]
  393.        End If 
  394.       Else If AZIONEP(POSIZIONEA(P),P)=14
  395.        If FINEA(POSIZIONEA(P),P)=False
  396.         Proc LASCIAAP[POSIZIONEA(P),P]
  397.        End If 
  398.       Else If AZIONEP(POSIZIONEA(P),P)=15
  399.        If FINEA(POSIZIONEA(P),P)=False
  400.         Proc LASCIAPA[POSIZIONEA(P),P]
  401.        End If 
  402.        '    ------------------------------------  
  403.       Else If AZIONEP(POSIZIONEA(P),P)=16
  404.        If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  405.         Proc MUOVITIP[POSIZIONEA(P),P]
  406.        End If 
  407.        '    ------------------------------------  
  408.       Else If AZIONEP(POSIZIONEA(P),P)=17
  409.        If FINEA(POSIZIONEA(P),P)=False
  410.         Proc PRENDIAO[POSIZIONEA(P),P]
  411.        End If 
  412.       Else If AZIONEP(POSIZIONEA(P),P)=18
  413.        If FINEA(POSIZIONEA(P),P)=False
  414.         Proc PRENDIAOB[POSIZIONEA(P),P]
  415.        End If 
  416.       Else If AZIONEP(POSIZIONEA(P),P)=19
  417.        If FINEA(POSIZIONEA(P),P)=False
  418.         Proc PRENDIAOTB[POSIZIONEA(P),P]
  419.        End If 
  420.       Else If AZIONEP(POSIZIONEA(P),P)=20
  421.        If FINEA(POSIZIONEA(P),P)=False
  422.         Proc PRENDIAP[POSIZIONEA(P),P]
  423.        End If 
  424.       Else If AZIONEP(POSIZIONEA(P),P)=21
  425.        If FINEA(POSIZIONEA(P),P)=False
  426.         Proc PRENDIPA[POSIZIONEA(P),P]
  427.        End If 
  428.        '    ------------------------------------  
  429.       Else If AZIONEP(POSIZIONEA(P),P)=22
  430.        If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  431.         Proc SEGUI[POSIZIONEA(P),P]
  432.        End If 
  433.       Else If AZIONEP(POSIZIONEA(P),P)=23
  434.        If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  435.         Proc SEGUIPA[POSIZIONEA(P),P]
  436.        End If 
  437.        '    ------------------------------------  
  438.       Else If AZIONEP(POSIZIONEA(P),P)=24
  439.        If FINEA(POSIZIONEA(P),P)=False
  440.         Proc USAUNOSUAO[POSIZIONEA(P),P]
  441.        End If 
  442.       Else If AZIONEP(POSIZIONEA(P),P)=25
  443.        If FINEA(POSIZIONEA(P),P)=False
  444.         Proc USAUNOSUAOB[POSIZIONEA(P),P]
  445.        End If 
  446.       Else If AZIONEP(POSIZIONEA(P),P)=26
  447.        If FINEA(POSIZIONEA(P),P)=False
  448.         Proc USAUNOSUAOTB[POSIZIONEA(P),P]
  449.        End If 
  450.       Else If AZIONEP(POSIZIONEA(P),P)=27
  451.        If FINEA(POSIZIONEA(P),P)=False
  452.         Proc USAUNOSUAP[POSIZIONEA(P),P]
  453.        End If 
  454.       Else If AZIONEP(POSIZIONEA(P),P)=28
  455.        If FINEA(POSIZIONEA(P),P)=False
  456.         Proc USAUNOSUPA[POSIZIONEA(P),P]
  457.        End If 
  458.       Else If AZIONEP(POSIZIONEA(P),P)=29
  459.        If FINEA(POSIZIONEA(P),P)=False
  460.         Proc USAUNOASUBO[POSIZIONEA(P),P]
  461.        End If 
  462.       Else If AZIONEP(POSIZIONEA(P),P)=30
  463.        If FINEA(POSIZIONEA(P),P)=False
  464.         Proc USAUNOASUBOC[POSIZIONEA(P),P]
  465.        End If 
  466.       Else If AZIONEP(POSIZIONEA(P),P)=31
  467.        If FINEA(POSIZIONEA(P),P)=False
  468.         Proc USAUNOASUBOTC[POSIZIONEA(P),P]
  469.        End If 
  470.       Else If AZIONEP(POSIZIONEA(P),P)=32
  471.        If FINEA(POSIZIONEA(P),P)=False
  472.         Proc USAUNOASUBP[POSIZIONEA(P),P]
  473.        End If 
  474.       Else If AZIONEP(POSIZIONEA(P),P)=33
  475.        If FINEA(POSIZIONEA(P),P)=False
  476.         Proc USAUNOASUPB[POSIZIONEA(P),P]
  477.        End If 
  478.       Else If AZIONEP(POSIZIONEA(P),P)=34
  479.        If FINEA(POSIZIONEA(P),P)=False
  480.         Proc USAUNOTASUBO[POSIZIONEA(P),P]
  481.        End If 
  482.       Else If AZIONEP(POSIZIONEA(P),P)=35
  483.        If FINEA(POSIZIONEA(P),P)=False
  484.         Proc USAUNOTASUBOC[POSIZIONEA(P),P]
  485.        End If 
  486.       Else If AZIONEP(POSIZIONEA(P),P)=36
  487.        If FINEA(POSIZIONEA(P),P)=False
  488.         Proc USAUNOTASUBOTC[POSIZIONEA(P),P]
  489.        End If 
  490.       Else If AZIONEP(POSIZIONEA(P),P)=37
  491.        If FINEA(POSIZIONEA(P),P)=False
  492.         Proc USAUNOTASUBP[POSIZIONEA(P),P]
  493.        End If 
  494.       Else If AZIONEP(POSIZIONEA(P),P)=38
  495.        If FINEA(POSIZIONEA(P),P)=False
  496.         Proc USAUNOTASUPB[POSIZIONEA(P),P]
  497.        End If 
  498.        '    ------------------------------------  
  499.       Else If AZIONEP(POSIZIONEA(P),P)=39
  500.        If FINEA(POSIZIONEA(P),P)=False
  501.         Proc USATIUNO[POSIZIONEA(P),P]
  502.        End If 
  503.       Else If AZIONEP(POSIZIONEA(P),P)=40
  504.        If FINEA(POSIZIONEA(P),P)=False
  505.         Proc USATIUNOA[POSIZIONEA(P),P]
  506.        End If 
  507.       Else If AZIONEP(POSIZIONEA(P),P)=41
  508.        If FINEA(POSIZIONEA(P),P)=False
  509.         Proc USATIUNOTA[POSIZIONEA(P),P]
  510.        End If 
  511.       End If 
  512.      End If 
  513.      Add POSIZIONEA(P),1,0 To 7
  514.     Else 
  515.      Dec SONNOP(P)
  516.      If SONNOP(P)=0
  517.       Bclr 2,TIPOP(P)
  518.      End If 
  519.     End If 
  520.    End If 
  521.   Next P
  522.   P=Rnd(NUMEROP-1)+1
  523.   PERSONAGGIOPSITROVADENTROUNEDIFICIO=POSIZIONEP(P)/$10000
  524.   If ANEMICI=True and PERSONAGGIOPSITROVADENTROUNEDIFICIO=0
  525.    NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  526.    NEMICI=Max(NEMICI,0)
  527.    If NEMICI=0
  528.     If Btst(2,TIPOP(P))=True
  529.      Bclr 2,TIPOP(P) : INEMICISVEGLIANOPERSONAGGIOP=True
  530.      Proc NEMICI[P]
  531.     Else 
  532.      INEMICISVEGLIANOPERSONAGGIOP=False
  533.      Proc NEMICI[P]
  534.     End If 
  535.    End If 
  536.   End If 
  537.   Dec COMPIUTAAZIONE
  538.  Wend 
  539. End Proc
  540. Procedure CARATTERISTICHE
  541.  Cls 
  542.  Print "Caratteristiche di ";NOMEP$(0);">"
  543.  Print "Costituzione "; Using "##### ";C0STITUZIONEP(0);
  544.  If C0STITUZIONEP(0)=1 Then Print "punto" Else Print "punti"
  545.  Print "Destrezza    "; Using "##### ";DESTREZZAP(0);
  546.  If DESTREZZAP(0)=1 Then Print "punto" Else Print "punti"
  547.  Print "Forza        "; Using "##### ";F0RZAP(0);
  548.  If F0RZAP(0)=1 Then Print "punto" Else Print "punti"
  549.  Print "Peso         "; Using "##### ";PESOP(0);
  550.  If PESOP(0)=1 Then Print "chilo" Else Print "chili"
  551.  Print "Resistenza   "; Using "##### ";RESISTENZAP(0);
  552.  If RESISTENZAP(0)=1 Then Print "punto" Else Print "punti"
  553.  Print "Sesso ";
  554.  If Btst(1,TIPOP(0))=True Then Print "femminile" Else Print "maschile"
  555.  For A=0 To NUMEROO
  556.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  557.    If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  558.     Print NOMEP$(0);" indossa 1 ";NOMESCO$(CATEGORIAO(A))
  559.     Exit 
  560.    End If 
  561.   End If 
  562.  Next A
  563.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  564. End Proc
  565. Procedure CARICAUNFILE
  566.  Show On : Cls 
  567.  FILE$=Fsel$("*.Adv",NOMEFILE$,"Carica un file","di Adventures Conceiver")
  568.  If Exist(FILE$)
  569.   Open In 1,FILE$
  570.   MARCATORE$=Input$(1,21)
  571.   LUNGHEZZABANCO=Lof(1)
  572.   Close 1
  573.   MEMORIA=Chip Free+Fast Free
  574.   If LUNGHEZZABANCO>MEMORIA
  575.    Proc TIC["Non c'� memoria sufficiente per caricare il file",ULTIMALINEA-1]
  576.    Proc TIC[FILE$,ULTIMALINEA] : Proc _ASPETTA
  577.   Else 
  578.    SEPARATORE=Instr(FILE$,":") : POSIZIONE=1
  579.    For A=1 To Len(FILE$)
  580.     If Instr(FILE$,"/",POSIZIONE)>0
  581.      SEPARATORECASSETTO=Instr(FILE$,"/",POSIZIONE)
  582.      POSIZIONE=SEPARATORECASSETTO+1
  583.     End If 
  584.    Next A
  585.    SEPARATORE=Max(SEPARATORE,SEPARATORECASSETTO)
  586.    PERCORSO$=Left$(FILE$,SEPARATORE)
  587.    If Right$(PERCORSO$,1)="/"
  588.     PERCORSO$=Left$(PERCORSO$,Len(PERCORSO$)-1)
  589.    End If 
  590.    NOMEFILE$=Right$(FILE$,Len(FILE$)-SEPARATORE)
  591.    If MARCATORE$="Adventures Conceiver"+Chr$(10)
  592.     Reserve As Work BANCO,LUNGHEZZABANCO
  593.     Bload FILE$,Start(BANCO)
  594.     MESSAGGIO1$="* "+NOMEFILE$+Str$(LUNGHEZZABANCO)+" Byte *"
  595.    Else 
  596.     Proc TIC[NOMEFILE$,ULTIMALINEA-1]
  597.     Proc TIC["Non ï¿½ un file di Adventures Conceiver",ULTIMALINEA] : Proc _ASPETTA
  598.    End If 
  599.   End If 
  600.  End If 
  601.  Hide On 
  602. End Proc
  603. Procedure CONDIZIONEDELGIORNO
  604.  Print "Descrizione giornata>";
  605.  If CONDIZIONEG=0
  606.   M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  607.   If M1NUTI<60 : Rem dalle 0:00 alle 0:59 
  608.    Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  609.   Else If M1NUTI>59 and M1NUTI<300 : Rem dalle 1:00 alle 4:59 
  610.    Print CONDIZIONEG$(7) : Rem La luna sta calando  
  611.   Else If M1NUTI>299 and M1NUTI<360 : Rem dalle 5:00 alle 5:59 
  612.    Print CONDIZIONEG$(0) : Rem Il cielo si sta schiarendo 
  613.   Else If M1NUTI>359 and M1NUTI<600 : Rem dalle 6:00 alle 9:59 
  614.    Print CONDIZIONEG$(1) : Rem Il sole si sta alzando 
  615.   Else If M1NUTI>599 and M1NUTI<900 : Rem dalle 10:00 alle 14:59   
  616.    Print CONDIZIONEG$(2) : Rem Il sole ï¿½ alto 
  617.   Else If M1NUTI>899 and M1NUTI<1140 : Rem dalle 15:00 alle 18:59   
  618.    Print CONDIZIONEG$(3) : Rem Il sole sta calando
  619.   Else If M1NUTI>1139 and M1NUTI<1200 : Rem dalle 19:00 alle 19:59 
  620.    Print CONDIZIONEG$(4) : Rem Il cielo si sta oscurando
  621.   Else If M1NUTI>1199 and M1NUTI<1380 : Rem dalle 20:00 alle 22:59 
  622.    Print CONDIZIONEG$(5) : Rem La luna si sta alzando 
  623.   Else : Rem dalle 23:00 alle 23:59 
  624.    Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  625.   End If 
  626.  Else If CONDIZIONEG=1
  627.   Print CONDIZIONEG$(8) : Rem E' nuvoloso
  628.  Else If CONDIZIONEG=2
  629.   Print CONDIZIONEG$(9) : Rem Sta piovendo 
  630.  Else If CONDIZIONEG=3
  631.   Print CONDIZIONEG$(10) : Rem Sta nevicando  
  632.  Else If CONDIZIONEG=4
  633.   Print CONDIZIONEG$(11) : Rem Sta grandinando  
  634.  Else If CONDIZIONEG=5
  635.   Print CONDIZIONEG$(12) : Rem C'� la nebbia
  636.  Else If CONDIZIONEG=6
  637.   Print CONDIZIONEG$(13) : Rem E' buio  
  638.  End If 
  639. End Proc
  640. Procedure CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  641.  SCOPODELGIOCO=AZIONEP(7,0)
  642.  PARA=PARAAAZIONEP(7,0)
  643.  PARB=PARABAZIONEP(7,0)
  644.  PARC=PARACAZIONEP(7,0)
  645.  If SCOPODELGIOCO=0
  646.   Pop Proc
  647.  Else If SCOPODELGIOCO=1
  648.   'Dai al personaggio PARA PARB oggetti PARC 
  649.   OGGETTIDIA(PARC)=0
  650.   If OGGETTODATOOLASCIATO(PARC)=PARB
  651.    For A=0 To NUMEROO
  652.     If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  653.      If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  654.       Inc OGGETTIDIA(CATEGORIAO(A))
  655.      End If 
  656.     End If 
  657.    Next A
  658.    If OGGETTIDIA(PARC)=PARB
  659.     FINEA(7,0)=True
  660.    End If 
  661.   End If 
  662.  Else If SCOPODELGIOCO=2
  663.   'Dai al personaggio PARA PARB oggetti tipo PARC  
  664.   For A=0 To NUMEROO
  665.    If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  666.     If TIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  667.      Inc TIPODIOGGETTOPARC
  668.     End If 
  669.    End If 
  670.   Next A
  671.   If TIPODIOGGETTOPARC=PARB
  672.    FINEA(7,0)=True
  673.   End If 
  674.  Else If SCOPODELGIOCO=3
  675.   'Dai a PARA PARB soldi 
  676.   If SOLDIRICEVUTIP(PARA)=PARB
  677.    FINEA(7,0)=True
  678.   End If 
  679.  Else If SCOPODELGIOCO=4
  680.   'Guadagna PARA soldi 
  681.   If SOLDIP(0)>=PARA
  682.    FINEA(7,0)=True
  683.   End If 
  684.  Else If SCOPODELGIOCO=5
  685.   'Lascia nel luogo PARA PARB oggetti PARC 
  686.   OGGETTIDIA(PARC)=0
  687.   For A=0 To NUMEROO
  688.    If POSIZIONEO(A)=PARA
  689.     If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  690.      Inc OGGETTIDIA(PARC)
  691.     End If 
  692.    End If 
  693.   Next A
  694.   If OGGETTIDIA(PARC)>=PARB
  695.    FINEA(7,0)=True
  696.   End If 
  697.  Else If SCOPODELGIOCO=6
  698.   'Lascia nel luogo PARA PARB oggetti tipo PARC  
  699.   For A=0 To NUMEROO
  700.    If POSIZIONEO(A)=PARA
  701.     If PARATIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  702.      Inc OGGETTODELTIPOPARC
  703.     End If 
  704.    End If 
  705.   Next A
  706.   If OGGETTODELTIPOPARC>=PARB
  707.    FINEA(7,0)=True
  708.   End If 
  709.  Else If SCOPODELGIOCO=7
  710.   'Lascia nel luogo PARA PARB soldi
  711.   If SOLDIL(PARA)>=PARB
  712.    FINEA(7,0)=True
  713.   End If 
  714.  Else If SCOPODELGIOCO=8
  715.   'Prendi PARA oggetti PARB
  716.   If OGGETTODELPERSONAGGIO0(PARB)=PARA
  717.    FINEA(7,0)=True
  718.   End If 
  719.  Else If SCOPODELGIOCO=9
  720.   'Prendi  PARA oggetti tipo PARB
  721.   For A=0 To NUMEROO
  722.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  723.     If TIPOCO(CATEGORIAO(A))=PARB and Btst(1,TIPOO(A))=False
  724.      Inc TIPODIOGGETTOPARB
  725.     End If 
  726.    End If 
  727.   Next A
  728.   If TIPODIOGGETTOPARB=PARA
  729.    FINEA(7,0)=True
  730.   End If 
  731.  Else If SCOPODELGIOCO=10
  732.   'Trova il personaggio PARA 
  733.   Proc PERSONAGGIOVISIBILE[PARA]
  734.   If PERSONAGGIOVISIBILEP(PARA)=True
  735.    FINEA(7,0)=True
  736.   End If 
  737.  Else If SCOPODELGIOCO=11
  738.   'Uccidi il personaggio PARA  
  739.   If RESISTENZAP(PARA)=0
  740.    FINEA(7,0)=True
  741.   End If 
  742.  Else If SCOPODELGIOCO=12
  743.   'Usa 1 oggetto PARA su 1 oggetto PARB
  744.   If CATEGORIAO(OGGETTOUSANTE)=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  745.    FINEA(7,0)=True
  746.   End If 
  747.  Else If SCOPODELGIOCO=13
  748.   'Usa 1 oggetto PARA su 1 oggetto tipo PARB 
  749.   If CATEGORIAO(OGGETTOUSANTE)=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  750.    FINEA(7,0)=True
  751.   End If 
  752.  Else If SCOPODELGIOCO=14
  753.   'Usa 1 oggetto PARA su PARB
  754.   If CATEGORIAO(OGGETTOUSANTE)=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  755.    FINEA(7,0)=True
  756.   End If 
  757.  Else If SCOPODELGIOCO=15
  758.   'Usa 1 oggetto tipo PARA su 1 oggetto PARB 
  759.   If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  760.    FINEA(7,0)=True
  761.   End If 
  762.  Else If SCOPODELGIOCO=16
  763.   'Usa 1 oggetto tipo PARA su un oggetto tipo PARB 
  764.   If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  765.    FINEA(7,0)=True
  766.   End If 
  767.  Else If SCOPODELGIOCO=17
  768.   'Usa 1 oggetto tipo PARA su PARB 
  769.   If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  770.    FINEA(7,0)=True
  771.   End If 
  772.  Else If SCOPODELGIOCO=18
  773.   'Vai nel luogo PARA
  774.   If POSIZIONEP(0)=PARA and TEMP0DIATTRAVERSAMENTOP(0)=0
  775.    FINEA(7,0)=True
  776.   End If 
  777.  End If 
  778. End Proc
  779. Procedure CREAMAPPA
  780.  Cls 
  781.  Print At(0,ULTIMALINEA);"Vuoi creare una mappa dei luoghi o delle stanze (l/s) ?"
  782.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  783.  If RISPOSTA$="l"
  784.   Repeat 
  785.    Locate 0,ULTIMALINEA : Input "Larghezza della mappa in luoghi (>2)>";LARGHEZZADELLAMAPPA$;
  786.    If LARGHEZZADELLAMAPPA$<>""
  787.     LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  788.     If LARGHEZZADELLAMAPPA<3
  789.      TIC["La larghezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  790.      Proc _ASPETTA
  791.     End If 
  792.    End If 
  793.   Until LARGHEZZADELLAMAPPA>2
  794.   Repeat 
  795.    Locate 0,ULTIMALINEA : Cline 
  796.    Input "Altezza della mappa in luoghi (>2)>";ALTEZZADELLAMAPPA$;
  797.    If ALTEZZADELLAMAPPA$<>""
  798.     ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  799.     If ALTEZZADELLAMAPPA<3
  800.      TIC["L'altezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  801.      Proc _ASPETTA
  802.     End If 
  803.    End If 
  804.   Until ALTEZZADELLAMAPPA>2
  805.   Repeat 
  806.    Locate 0,ULTIMALINEA : Cline 
  807.    Input "Luogo di partenza della mappa (>=0)>";LUOGODIPARTENZADELLAMAPPA$;
  808.    If LUOGODIAPRTENZADELLAMAPPA$<>""
  809.     LUOGODIPARTENZADELLAMAPPA=Val(LUOGODIPARTENZADELLAMAPPA$)
  810.     If LUOGODIAPRTENZADELLAMAPPA<0
  811.      TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  812.      Proc _ASPETTA
  813.     End If 
  814.    End If 
  815.   Until LUOGODIPARTENZADELLAMAPPA>=0
  816.   NUMEROLUOGHI=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  817.   If LUOGODIPARTENZADELLAMAPPA+NUMEROLUOGHI-1>NUMEROL
  818.    TIC["Numero dei luoghi disponibili uguale a"+Str$(NUMEROL+1)+"!",ULTIMALINEA]
  819.    Proc _ASPETTA
  820.   Else 
  821.    Locate 0,ULTIMALINEA : Cline : Print "Vuoi che i luoghi siano delimitati (s/n) ?"
  822.    RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  823.    If RISPOSTA$="s"
  824.     LIMITI=True
  825.    Else 
  826.     LIMITI=False
  827.    End If 
  828.    TIC["Sto creando la mappa dei luoghi...",ULTIMALINEA]
  829.    Proc _ASPETTA
  830.    Proc _ORDINALUOGHI[NUMEROLUOGHI-1,LARGHEZZADELLAMAPPA,LUOGODIPARTENZADELLLAMAPPA,LIMITI]
  831.   End If 
  832.  Else If RISPOSTA$="s"
  833.   If NUMEROE=-1
  834.    Locate 0,ULTIMALINEA : Cline : Print "Non ci sono Edifici!"
  835.    Proc _ASPETTA : Pop Proc
  836.   Else If NUMEROE>0
  837.    Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  838.    If NUMEROEDIFICIO$<>""
  839.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  840.     Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  841.    End If 
  842.   End If 
  843.   Repeat 
  844.    Locate 0,ULTIMALINEA : Input "Larghezza della mappa in stanze (>2)>";LARGHEZZADELLAMAPPA$;
  845.    If LARGHEZZADELLAMAPPA$<>""
  846.     LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  847.     If LARGHEZZADELLAMAPPA<3
  848.      TIC["La larghezza deve essere almeno di tre stanze!",ULTIMALINEA]
  849.      Proc _ASPETTA
  850.     End If 
  851.    End If 
  852.   Until LARGHEZZADELLAMAPPA>2
  853.   Repeat 
  854.    Locate 0,ULTIMALINEA : Cline 
  855.    Input "Altezza della mappa in stanze (>2)>";ALTEZZADELLAMAPPA$;
  856.    If ALTEZZADELLAMAPPA$<>""
  857.     ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  858.     If ALTEZZADELLAMAPPA<3
  859.      TIC["L'altezza deve essere almeno di tre stanze!",ULTIMALINEA]
  860.      Proc _ASPETTA
  861.     End If 
  862.    End If 
  863.   Until ALTEZZADELLAMAPPA>2
  864.   Repeat 
  865.    Locate 0,ULTIMALINEA : Cline 
  866.    Input "Stanza di partenza della mappa (>=0)>";STANZADIPARTENZADELLAMAPPA$;
  867.    If STANZADIAPRTENZADELLAMAPPA$<>""
  868.     STANZADIPARTENZADELLAMAPPA=Val(STANZADIPARTENZADELLAMAPPA$)
  869.     If STANZADIAPRTENZADELLAMAPPA<0
  870.      TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  871.      Proc _ASPETTA
  872.     End If 
  873.    End If 
  874.   Until STANZADIPARTENZADELLAMAPPA>=0
  875.   NUMEROSTANZE=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  876.   If STANZADIPARTENZADELLAMAPPA+NUMEROSTANZE-1>NUMEROS(NUMEROEDIFICIO)
  877.    TIC["Numero delle stanze disponibili uguale a"+Str$(NUMEROS(NUMEROEDIFICIO)+1)+"!",ULTIMALINEA]
  878.    Proc _ASPETTA
  879.   Else 
  880.    TIC["Sto creando la mappa delle stanze...",ULTIMALINEA]
  881.    Proc _ASPETTA
  882.    Proc _ORDINASTANZE[NUMEROEDIFICIO,NUMEROSTANZE-1,LARGHEZZADELLAMAPPA,STANZADIPARTENZADELLLAMAPPA]
  883.   End If 
  884.  End If 
  885.  Curs Off 
  886. End Proc
  887. Procedure DABANCOAVARIABILI
  888.  If Length(BANCO)>0
  889.   TIC["Un attimo che converto i dati...",ULTIMALINEA]
  890.   INDIRIZZO=Start(BANCO)+21
  891.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  892.   'Nemici attivi o no:   
  893.   Add INDIRIZZO,Len(DATO$)+1
  894.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  895.   ANEMICI=Val(DATO$)
  896.   Add INDIRIZZO,Len(DATO$)+1
  897.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  898.   'Numero delle categorie degli oggetti:   
  899.   Add INDIRIZZO,Len(DATO$)+1
  900.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  901.   NUMEROCO=Val(DATO$)
  902.   Add INDIRIZZO,Len(DATO$)+1
  903.   For A=0 To NUMEROCO
  904.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  905.    'Categoria A>  
  906.    Add INDIRIZZO,Len(DATO$)+1
  907.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  908.    'Nome singolare: 
  909.    Add INDIRIZZO,Len(DATO$)+1
  910.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  911.    NOMESCO$(A)=DATO$
  912.    Add INDIRIZZO,Len(DATO$)+1
  913.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  914.    'Nome plurale: 
  915.    Add INDIRIZZO,Len(DATO$)+1
  916.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  917.    NOMEPCO$(A)=DATO$
  918.    Add INDIRIZZO,Len(DATO$)+1
  919.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  920.    'Nome singolare resto: 
  921.    Add INDIRIZZO,Len(DATO$)+1
  922.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  923.    NOMESRO$(A)=DATO$
  924.    Add INDIRIZZO,Len(DATO$)+1
  925.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  926.    'Nome plurale resto: 
  927.    Add INDIRIZZO,Len(DATO$)+1
  928.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  929.    NOMEPRO$(A)=DATO$
  930.    Add INDIRIZZO,Len(DATO$)+1
  931.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  932.    'Peso: 
  933.    Add INDIRIZZO,Len(DATO$)+1
  934.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  935.    PESOCO(A)=Val(DATO$)
  936.    Add INDIRIZZO,Len(DATO$)+1
  937.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  938.    'Peso resto: 
  939.    Add INDIRIZZO,Len(DATO$)+1
  940.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  941.    PESORESTOCO(A)=Val(DATO$)
  942.    Add INDIRIZZO,Len(DATO$)+1
  943.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  944.    'Tipo:   
  945.    Add INDIRIZZO,Len(DATO$)+1
  946.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  947.    TIPOCO(A)=Val(DATO$)
  948.    Add INDIRIZZO,Len(DATO$)+1
  949.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  950.    'Parametro tipo:   
  951.    Add INDIRIZZO,Len(DATO$)+1
  952.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  953.    PARATIPOCO(A)=Val(DATO$)
  954.    Add INDIRIZZO,Len(DATO$)+1
  955.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  956.    'Descrizione:  
  957.    Add INDIRIZZO,Len(DATO$)+1
  958.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  959.    DESCRIZIONECO$(A)=DATO$
  960.    Add INDIRIZZO,Len(DATO$)+1
  961.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  962.    'Oggetto del personaggio zero: 
  963.    Add INDIRIZZO,Len(DATO$)+1
  964.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  965.    OGGETTODELPERSONAGGIO0(A)=Val(DATO$)
  966.    Add INDIRIZZO,Len(DATO$)+1
  967.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  968.    'Resto del personaggio zero: 
  969.    Add INDIRIZZO,Len(DATO$)+1
  970.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  971.    RESTODELPERSONAGGIO0(A)=Val(DATO$)
  972.    Add INDIRIZZO,Len(DATO$)+1
  973.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  974.    'Oggetto dato: 
  975.    Add INDIRIZZO,Len(DATO$)+1
  976.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  977.    OGGETTODATOOLASCIATO(A)=Val(DATO$)
  978.    Add INDIRIZZO,Len(DATO$)+1
  979.   Next A
  980.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  981.   'Numero degli edifici:   
  982.   Add INDIRIZZO,Len(DATO$)+1
  983.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  984.   NUMEROE=Val(DATO$)
  985.   Add INDIRIZZO,Len(DATO$)+1
  986.   If NUMEROE>-1
  987.    For A=0 To NUMEROE
  988.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  989.     'Edificio A>   
  990.     Add INDIRIZZO,Len(DATO$)+1
  991.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  992.     'Nome: 
  993.     Add INDIRIZZO,Len(DATO$)+1
  994.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  995.     NOMEE$(A)=DATO$
  996.     Add INDIRIZZO,Len(DATO$)+1
  997.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  998.     'Descrizione:  
  999.     Add INDIRIZZO,Len(DATO$)+1
  1000.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1001.     DESCRIZIONEE$(A)=DATO$
  1002.     Add INDIRIZZO,Len(DATO$)+1
  1003.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1004.     'Numero delle stanze:  
  1005.     Add INDIRIZZO,Len(DATO$)+1
  1006.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1007.     NUMEROS(A)=Val(DATO$)
  1008.     Add INDIRIZZO,Len(DATO$)+1
  1009.     For B=0 To NUMEROS(A)
  1010.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1011.      'Stanza A>   
  1012.      Add INDIRIZZO,Len(DATO$)+1
  1013.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1014.      'Nome: 
  1015.      Add INDIRIZZO,Len(DATO$)+1
  1016.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1017.      NOMES$(B,A)=DATO$
  1018.      Add INDIRIZZO,Len(DATO$)+1
  1019.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1020.      'Luogo Nord: 
  1021.      Add INDIRIZZO,Len(DATO$)+1
  1022.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1023.      DREZIONES(0,B,A)=Val(DATO$)
  1024.      Add INDIRIZZO,Len(DATO$)+1
  1025.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1026.      'Luogo NordEst:  
  1027.      Add INDIRIZZO,Len(DATO$)+1
  1028.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1029.      DREZIONES(1,B,A)=Val(DATO$)
  1030.      Add INDIRIZZO,Len(DATO$)+1
  1031.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1032.      'Luogo Est:  
  1033.      Add INDIRIZZO,Len(DATO$)+1
  1034.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1035.      DREZIONES(2,B,A)=Val(DATO$)
  1036.      Add INDIRIZZO,Len(DATO$)+1
  1037.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1038.      'Luogo SudEst: 
  1039.      Add INDIRIZZO,Len(DATO$)+1
  1040.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1041.      DREZIONES(3,B,A)=Val(DATO$)
  1042.      Add INDIRIZZO,Len(DATO$)+1
  1043.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1044.      'Luogo Sud:  
  1045.      Add INDIRIZZO,Len(DATO$)+1
  1046.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1047.      DREZIONES(4,B,A)=Val(DATO$)
  1048.      Add INDIRIZZO,Len(DATO$)+1
  1049.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1050.      'Luogo SudOvest: 
  1051.      Add INDIRIZZO,Len(DATO$)+1
  1052.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1053.      DREZIONES(5,B,A)=Val(DATO$)
  1054.      Add INDIRIZZO,Len(DATO$)+1
  1055.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1056.      'Luogo Ovest:  
  1057.      Add INDIRIZZO,Len(DATO$)+1
  1058.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1059.      DREZIONES(6,B,A)=Val(DATO$)
  1060.      Add INDIRIZZO,Len(DATO$)+1
  1061.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1062.      'Luogo NordOvest:  
  1063.      Add INDIRIZZO,Len(DATO$)+1
  1064.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1065.      DREZIONES(7,B,A)=Val(DATO$)
  1066.      Add INDIRIZZO,Len(DATO$)+1
  1067.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1068.      'Luogo Sopra:  
  1069.      Add INDIRIZZO,Len(DATO$)+1
  1070.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1071.      DREZIONES(8,B,A)=Val(DATO$)
  1072.      Add INDIRIZZO,Len(DATO$)+1
  1073.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1074.      'Luogo Sotto:  
  1075.      Add INDIRIZZO,Len(DATO$)+1
  1076.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1077.      DREZIONES(9,B,A)=Val(DATO$)
  1078.      Add INDIRIZZO,Len(DATO$)+1
  1079.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1080.      'Soldi nella stanza:   
  1081.      Add INDIRIZZO,Len(DATO$)+1
  1082.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1083.      SOLDIS(B,A)=Val(DATO$)
  1084.      Add INDIRIZZO,Len(DATO$)+1
  1085.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1086.      'Descrizione:  
  1087.      Add INDIRIZZO,Len(DATO$)+1
  1088.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1089.      DESCRIZIONES$(B,A)=DATO$
  1090.      Add INDIRIZZO,Len(DATO$)+1
  1091.     Next B
  1092.    Next A
  1093.   End If 
  1094.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1095.   'Numero dei luoghi:  
  1096.   Add INDIRIZZO,Len(DATO$)+1
  1097.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1098.   NUMEROL=Val(DATO$)
  1099.   Add INDIRIZZO,Len(DATO$)+1
  1100.   For A=0 To NUMEROL
  1101.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1102.    'Luogo A>  
  1103.    Add INDIRIZZO,Len(DATO$)+1
  1104.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1105.    'Nome: 
  1106.    Add INDIRIZZO,Len(DATO$)+1
  1107.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1108.    NOMEL$(A)=DATO$
  1109.    Add INDIRIZZO,Len(DATO$)+1
  1110.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1111.    'Luogo Nord: 
  1112.    Add INDIRIZZO,Len(DATO$)+1
  1113.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1114.    DREZIONEL(0,A)=Val(DATO$)
  1115.    Add INDIRIZZO,Len(DATO$)+1
  1116.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1117.    'Luogo NordEst:  
  1118.    Add INDIRIZZO,Len(DATO$)+1
  1119.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1120.    DREZIONEL(1,A)=Val(DATO$)
  1121.    Add INDIRIZZO,Len(DATO$)+1
  1122.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1123.    'Luogo Est:  
  1124.    Add INDIRIZZO,Len(DATO$)+1
  1125.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1126.    DREZIONEL(2,A)=Val(DATO$)
  1127.    Add INDIRIZZO,Len(DATO$)+1
  1128.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1129.    'Luogo SudEst: 
  1130.    Add INDIRIZZO,Len(DATO$)+1
  1131.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1132.    DREZIONEL(3,A)=Val(DATO$)
  1133.    Add INDIRIZZO,Len(DATO$)+1
  1134.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1135.    'Luogo Sud:  
  1136.    Add INDIRIZZO,Len(DATO$)+1
  1137.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1138.    DREZIONEL(4,A)=Val(DATO$)
  1139.    Add INDIRIZZO,Len(DATO$)+1
  1140.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1141.    'Luogo SudOvest: 
  1142.    Add INDIRIZZO,Len(DATO$)+1
  1143.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1144.    DREZIONEL(5,A)=Val(DATO$)
  1145.    Add INDIRIZZO,Len(DATO$)+1
  1146.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1147.    'Luogo Ovest:  
  1148.    Add INDIRIZZO,Len(DATO$)+1
  1149.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1150.    DREZIONEL(6,A)=Val(DATO$)
  1151.    Add INDIRIZZO,Len(DATO$)+1
  1152.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1153.    'Luogo NordOvest:  
  1154.    Add INDIRIZZO,Len(DATO$)+1
  1155.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1156.    DREZIONEL(7,A)=Val(DATO$)
  1157.    Add INDIRIZZO,Len(DATO$)+1
  1158.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1159.    'Luogo Sopra:  
  1160.    Add INDIRIZZO,Len(DATO$)+1
  1161.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1162.    DREZIONEL(8,A)=Val(DATO$)
  1163.    Add INDIRIZZO,Len(DATO$)+1
  1164.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1165.    'Luogo Sotto:  
  1166.    Add INDIRIZZO,Len(DATO$)+1
  1167.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1168.    DREZIONEL(9,A)=Val(DATO$)
  1169.    Add INDIRIZZO,Len(DATO$)+1
  1170.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1171.    'Soldi nel luogo:  
  1172.    Add INDIRIZZO,Len(DATO$)+1
  1173.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1174.    SOLDIL(A)=Val(DATO$)
  1175.    Add INDIRIZZO,Len(DATO$)+1
  1176.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1177.    'Tipo di luogo:  
  1178.    Add INDIRIZZO,Len(DATO$)+1
  1179.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1180.    TIPOL(A)=Val(DATO$)
  1181.    Add INDIRIZZO,Len(DATO$)+1
  1182.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1183.    'Descrizione:  
  1184.    Add INDIRIZZO,Len(DATO$)+1
  1185.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1186.    DESCRIZIONEL$(A)=DATO$
  1187.    Add INDIRIZZO,Len(DATO$)+1
  1188.   Next A
  1189.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1190.   'Numero degli oggetti:   
  1191.   Add INDIRIZZO,Len(DATO$)+1
  1192.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1193.   NUMEROO=Val(DATO$)
  1194.   Add INDIRIZZO,Len(DATO$)+1
  1195.   For A=0 To NUMEROO
  1196.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1197.    'Oggetto A>  
  1198.    Add INDIRIZZO,Len(DATO$)+1
  1199.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1200.    'Categoria:  
  1201.    Add INDIRIZZO,Len(DATO$)+1
  1202.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1203.    CATEGORIAO(A)=Val(DATO$)
  1204.    Add INDIRIZZO,Len(DATO$)+1
  1205.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1206.    'Posizione:  
  1207.    Add INDIRIZZO,Len(DATO$)+1
  1208.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1209.    POSIZIONEO(A)=Val(DATO$)
  1210.    Add INDIRIZZO,Len(DATO$)+1
  1211.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1212.    'Tipo:   
  1213.    Add INDIRIZZO,Len(DATO$)+1
  1214.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1215.    TIPOO(A)=Val(DATO$)
  1216.    Add INDIRIZZO,Len(DATO$)+1
  1217.   Next A
  1218.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1219.   'Numero dei personaggi:  
  1220.   Add INDIRIZZO,Len(DATO$)+1
  1221.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1222.   NUMEROP=Val(DATO$)
  1223.   Add INDIRIZZO,Len(DATO$)+1
  1224.   For A=0 To NUMEROP
  1225.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1226.    'Personaggio A>  
  1227.    Add INDIRIZZO,Len(DATO$)+1
  1228.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1229.    'Nome:   
  1230.    Add INDIRIZZO,Len(DATO$)+1
  1231.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1232.    NOMEP$(A)=DATO$
  1233.    Add INDIRIZZO,Len(DATO$)+1
  1234.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1235.    'Posizione:    
  1236.    Add INDIRIZZO,Len(DATO$)+1
  1237.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1238.    POSIZIONEP(A)=Val(DATO$)
  1239.    Add INDIRIZZO,Len(DATO$)+1
  1240.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1241.    'Costituzione:   
  1242.    Add INDIRIZZO,Len(DATO$)+1
  1243.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1244.    C0STITUZIONEP(A)=Val(DATO$)
  1245.    Add INDIRIZZO,Len(DATO$)+1
  1246.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1247.    'Destrezza:    
  1248.    Add INDIRIZZO,Len(DATO$)+1
  1249.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1250.    DESTREZZAP(A)=Val(DATO$)
  1251.    Add INDIRIZZO,Len(DATO$)+1
  1252.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1253.    'Forza:    
  1254.    Add INDIRIZZO,Len(DATO$)+1
  1255.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1256.    F0RZAP(A)=Val(DATO$)
  1257.    Add INDIRIZZO,Len(DATO$)+1
  1258.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1259.    'Peso:   
  1260.    Add INDIRIZZO,Len(DATO$)+1
  1261.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1262.    PESOP(A)=Val(DATO$)
  1263.    Add INDIRIZZO,Len(DATO$)+1
  1264.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1265.    'Peso netto:   
  1266.    Add INDIRIZZO,Len(DATO$)+1
  1267.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1268.    PESONETTOP(A)=Val(DATO$)
  1269.    Add INDIRIZZO,Len(DATO$)+1
  1270.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1271.    'Resistenza:   
  1272.    Add INDIRIZZO,Len(DATO$)+1
  1273.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1274.    RESISTENZAP(A)=Val(DATO$)
  1275.    Add INDIRIZZO,Len(DATO$)+1
  1276.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1277.    'Soldi:    
  1278.    Add INDIRIZZO,Len(DATO$)+1
  1279.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1280.    SOLDIP(A)=Val(DATO$)
  1281.    Add INDIRIZZO,Len(DATO$)+1
  1282.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1283.    'Tipo:   
  1284.    Add INDIRIZZO,Len(DATO$)+1
  1285.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1286.    TIPOP(A)=Val(DATO$)
  1287.    Add INDIRIZZO,Len(DATO$)+1
  1288.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1289.    'Descrizione:    
  1290.    Add INDIRIZZO,Len(DATO$)+1
  1291.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1292.    DESCRIZIONEP$(A)=DATO$
  1293.    Add INDIRIZZO,Len(DATO$)+1
  1294.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1295.    'Inizio sonno:   
  1296.    Add INDIRIZZO,Len(DATO$)+1
  1297.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1298.    INIZIOSONNOP(A)=Val(DATO$)
  1299.    Add INDIRIZZO,Len(DATO$)+1
  1300.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1301.    'Durata sonno:   
  1302.    Add INDIRIZZO,Len(DATO$)+1
  1303.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1304.    SONNOP(A)=Val(DATO$)
  1305.    Add INDIRIZZO,Len(DATO$)+1
  1306.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1307.    'Direzione presa:    
  1308.    Add INDIRIZZO,Len(DATO$)+1
  1309.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1310.    DREZIONEPRESAP(A)=Val(DATO$)
  1311.    Add INDIRIZZO,Len(DATO$)+1
  1312.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1313.    'Luogo di destinazione:    
  1314.    Add INDIRIZZO,Len(DATO$)+1
  1315.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1316.    LUOGODIDESTINAZIONEP(A)=Val(DATO$)
  1317.    Add INDIRIZZO,Len(DATO$)+1
  1318.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1319.    'Tempo di attraversamento:   
  1320.    Add INDIRIZZO,Len(DATO$)+1
  1321.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1322.    TEMP0DIATTRAVERSAMENTOP(A)=Val(DATO$)
  1323.    Add INDIRIZZO,Len(DATO$)+1
  1324.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1325.    'Soldi ricevuti:     
  1326.    Add INDIRIZZO,Len(DATO$)+1
  1327.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1328.    SOLDIRICEVUTIP(A)=Val(DATO$)
  1329.    Add INDIRIZZO,Len(DATO$)+1
  1330.    For B=0 To 7
  1331.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1332.     'Azione:   
  1333.     Add INDIRIZZO,Len(DATO$)+1
  1334.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1335.     AZIONEP(B,A)=Val(DATO$)
  1336.     Add INDIRIZZO,Len(DATO$)+1
  1337.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1338.     'Parametro A azione:   
  1339.     Add INDIRIZZO,Len(DATO$)+1
  1340.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1341.     PARAAAZIONEP(B,A)=Val(DATO$)
  1342.     Add INDIRIZZO,Len(DATO$)+1
  1343.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1344.     'Parametro B azione:   
  1345.     Add INDIRIZZO,Len(DATO$)+1
  1346.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1347.     PARABAZIONEP(B,A)=Val(DATO$)
  1348.     Add INDIRIZZO,Len(DATO$)+1
  1349.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1350.     'Parametro C azione:   
  1351.     Add INDIRIZZO,Len(DATO$)+1
  1352.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1353.     PARACAZIONEP(B,A)=Val(DATO$)
  1354.     Add INDIRIZZO,Len(DATO$)+1
  1355.    Next B
  1356.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1357.    'Posizione azione:   
  1358.    Add INDIRIZZO,Len(DATO$)+1
  1359.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1360.    POSIZIONEA(A)=Val(DATO$)
  1361.    Add INDIRIZZO,Len(DATO$)+1
  1362.   Next A
  1363.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1364.   'Numero delle regioni:   
  1365.   Add INDIRIZZO,Len(DATO$)+1
  1366.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1367.   NUMEROR=Val(DATO$)
  1368.   Add INDIRIZZO,Len(DATO$)+1
  1369.   For A=0 To NUMEROR
  1370.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1371.    'Regione A>  
  1372.    Add INDIRIZZO,Len(DATO$)+1
  1373.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1374.    'Nome:   
  1375.    Add INDIRIZZO,Len(DATO$)+1
  1376.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1377.    NOMER$(A)=DATO$
  1378.    Add INDIRIZZO,Len(DATO$)+1
  1379.   Next A
  1380.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1381.   'Giornata:     
  1382.   Add INDIRIZZO,Len(DATO$)+1
  1383.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1384.   CONDIZIONEG=Val(DATO$)
  1385.   Add INDIRIZZO,Len(DATO$)+1
  1386.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1387.   'Tempo trascorso:    
  1388.   Add INDIRIZZO,Len(DATO$)+1
  1389.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1390.   TEMP0TRASCORSO=Val(DATO$)
  1391.   Add INDIRIZZO,Len(DATO$)+1
  1392.   If INDIRIZZO=Start(BANCO)+Length(BANCO)
  1393.    Proc TIC["Conversione dati avvenuta",ULTIMALINEA] : Proc _ASPETTA
  1394.   Else 
  1395.    Proc TIC["Conversione dati fallita",ULTIMALINEA] : Proc _ASPETTA
  1396.    Proc INIZIALIZZALEVARIABILI
  1397.   End If 
  1398.   Erase BANCO
  1399.  End If 
  1400. End Proc
  1401. Procedure DAI
  1402.  For A=1 To NUMEROP
  1403.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIRICEVENTI
  1404.  Next A
  1405.  If PERSONAGGIRICEVENTI>0
  1406.   For A=0 To NUMEROCO
  1407.    If OGGETTODELPERSONAGGIO0(A)>0
  1408.     Inc CATEGORIEOGGETTI
  1409.    End If 
  1410.    If RESTODELPERSONAGGIO0(A)>0
  1411.     Inc CATEGORIEOGGETTI
  1412.    End If 
  1413.   Next A
  1414.   For A=1 To NUMEROP
  1415.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  1416.     Inc PERSONAGGIDADARE
  1417.    End If 
  1418.   Next A
  1419.   If SOLDIP(0)>0
  1420.    SOLDIDADARE=True
  1421.   End If 
  1422.   If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1423.    Print At(0,ULTIMALINEA);"Vuoi dare un oggetto, un personaggio o dei soldi (o/p/s) ?>";
  1424.    OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  1425.    OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  1426.    If OGGETTOPERSONAGGIOOSOLDI$="o"
  1427.     Proc DAIUNOGGETTO
  1428.    Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  1429.     Proc DAIUNPERSONAGGIO
  1430.    Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  1431.     Proc DAIDEISOLDI
  1432.    End If 
  1433.   Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1434.    Print At(0,ULTIMALINEA);"Vuoi dare un oggetto o dei soldi (o/s) ?>";
  1435.    OGGETTOOSOLDI$=Input$(1)
  1436.    OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  1437.    If OGGETTOOSOLDI$="o"
  1438.     Proc DAIUNOGGETTO
  1439.    Else If OGGETTOOSOLDI$="s"
  1440.     Proc DAIDEISOLDI
  1441.    End If 
  1442.   Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1443.    Print At(0,ULTIMALINEA);"Vuoi dare un personaggio o dei soldi (p/s) ?>";
  1444.    PERSONAGGIOOSOLDI$=Input$(1)
  1445.    PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  1446.    If PERSONAGGIOOSOLDI$="p"
  1447.     Proc DAIUNPERSONAGGIO
  1448.    Else If PERSONAGGIOOSOLDI$="s"
  1449.     Proc DAIDEISOLDI
  1450.    End If 
  1451.   Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1452.    Proc DAIDEISOLDI
  1453.   Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1454.    Print At(0,ULTIMALINEA);"Vuoi dare un oggetto od un personaggio (o/p) ?>";
  1455.    OGGETTOOPERSONAGGIO$=Input$(1)
  1456.    OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  1457.    If OGGETTOOPERSONAGGIO$="o"
  1458.     Proc DAIUNOGGETTO
  1459.    Else If OGGETTOOPERSONAGGIO$="p"
  1460.     Proc DAIUNPERSONAGGIO
  1461.    End If 
  1462.   Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=False
  1463.    Proc DAIUNOGGETTO
  1464.   Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1465.    Proc DAIUNPERSONAGGIO
  1466.   Else 
  1467.    Print At(0,ULTIMALINEA);"Non hai oggetti, personaggi o soldi da dare";
  1468.    If _MUSICA=False
  1469.     Bell 1
  1470.    End If 
  1471.    Proc _ASPETTA
  1472.   End If 
  1473.  Else 
  1474.   Print At(0,ULTIMALINEA);"Non ci sono personaggi a cui dare";
  1475.   If _MUSICA=False
  1476.    Bell 1
  1477.   End If 
  1478.   Proc _ASPETTA
  1479.  End If 
  1480. End Proc
  1481. Procedure DAIAPAO[AZIONE,P]
  1482.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1483.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1484.   PERSONAGGIOTROVATO=A
  1485.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1486.   PERSONAGGIOTROVATO=A
  1487.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1488.   PERSONAGGIOTROVATO=A
  1489.  End If 
  1490.  If PERSONAGGIOTROVATO>-1
  1491.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1492.   For A=0 To NUMEROO
  1493.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1494.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1495.     B=A
  1496.    End If 
  1497.   Next A
  1498.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1499.    Pop Proc
  1500.   End If 
  1501.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1502.    A=B
  1503.   Else 
  1504.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1505.    B=0
  1506.    For A=0 To NUMEROO
  1507.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1508.      OGGETTODELPERSONAGGIOP(B)=A
  1509.      Inc B
  1510.     End If 
  1511.    Next A
  1512.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1513.   End If 
  1514.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1515.   If Btst(1,TIPOO(A))=True
  1516.    If PERSONAGGIOTROVATO=0
  1517.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1518.    End If 
  1519.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1520.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1521.   Else 
  1522.    If PERSONAGGIOTROVATO=0
  1523.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1524.    End If 
  1525.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1526.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1527.   End If 
  1528.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1529.    For B=0 To NUMEROO
  1530.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1531.      If Btst(1,TIPOO(B))=True
  1532.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1533.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1534.      Else 
  1535.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1536.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1537.      End If 
  1538.     End If 
  1539.    Next B
  1540.    For B=1 To NUMEROP
  1541.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1542.      Add PESONETTOP(P),-PESOP(B)*1000
  1543.      Add PESONETTOP(P),-PESONETTOP(B)
  1544.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1545.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1546.     End If 
  1547.    Next B
  1548.   End If 
  1549.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1550.    If PERSONAGGIOTROVATO=0
  1551.     Print NOMEP$(P);" ti d� 1 ";
  1552.    Else 
  1553.     Print NOMEP$(P);" d� 1 ";
  1554.    End If 
  1555.    If Btst(1,TIPOO(A))=True
  1556.     Print NOMESRO$(CATEGORIAO(A));
  1557.    Else 
  1558.     Print NOMESCO$(CATEGORIAO(A));
  1559.    End If 
  1560.    If PERSONAGGIOTROVATO=0
  1561.     Print 
  1562.    Else 
  1563.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1564.    End If 
  1565.   End If 
  1566.   Dec PARAAAZIONEP(AZIONE,P)
  1567.   If PARAAAZIONEP(AZIONE,P)=0
  1568.    FINEA(AZIONE,P)=True
  1569.   End If 
  1570.  End If 
  1571. End Proc
  1572. Procedure DAIAPAOB[AZIONE,P]
  1573.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1574.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1575.   PERSONAGGIOTROVATO=A
  1576.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1577.   PERSONAGGIOTROVATO=A
  1578.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1579.   PERSONAGGIOTROVATO=A
  1580.  End If 
  1581.  If PERSONAGGIOTROVATO>-1
  1582.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1583.   For A=0 To NUMEROO
  1584.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1585.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1586.     B=A
  1587.    End If 
  1588.   Next A
  1589.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1590.    Pop Proc
  1591.   End If 
  1592.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1593.    A=B
  1594.   Else 
  1595.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1596.    B=0
  1597.    For A=0 To NUMEROO
  1598.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1599.      OGGETTODELPERSONAGGIOP(B)=A
  1600.      Inc B
  1601.     End If 
  1602.    Next A
  1603.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1604.   End If 
  1605.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1606.   If Btst(1,TIPOO(A))=True
  1607.    If PERSONAGGIOTROVATO=0
  1608.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1609.    End If 
  1610.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1611.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1612.   Else 
  1613.    If PERSONAGGIOTROVATO=0
  1614.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1615.    End If 
  1616.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1617.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1618.   End If 
  1619.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1620.    For B=0 To NUMEROO
  1621.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1622.      If Btst(1,TIPOO(B))=True
  1623.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1624.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1625.      Else 
  1626.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1627.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1628.      End If 
  1629.     End If 
  1630.    Next B
  1631.    For B=1 To NUMEROP
  1632.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1633.      Add PESONETTOP(P),-PESOP(B)*1000
  1634.      Add PESONETTOP(P),-PESONETTOP(B)
  1635.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1636.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1637.     End If 
  1638.    Next B
  1639.   End If 
  1640.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1641.    If PERSONAGGIOTROVATO=0
  1642.     Print NOMEP$(P);" ti d� 1 ";
  1643.    Else 
  1644.     Print NOMEP$(P);" d� 1 ";
  1645.    End If 
  1646.    If Btst(1,TIPOO(A))=True
  1647.     Print NOMESRO$(CATEGORIAO(A));
  1648.    Else 
  1649.     Print NOMESCO$(CATEGORIAO(A));
  1650.    End If 
  1651.    If PERSONAGGIOTROVATO=0
  1652.     Print 
  1653.    Else 
  1654.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1655.    End If 
  1656.   End If 
  1657.   Dec PARAAAZIONEP(AZIONE,P)
  1658.   If PARAAAZIONEP(AZIONE,P)=0
  1659.    FINEA(AZIONE,P)=True
  1660.   End If 
  1661.  End If 
  1662. End Proc
  1663. Procedure DAIAPAOTB[AZIONE,P]
  1664.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1665.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1666.   PERSONAGGIOTROVATO=A
  1667.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1668.   PERSONAGGIOTROVATO=A
  1669.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1670.   PERSONAGGIOTROVATO=A
  1671.  End If 
  1672.  If PERSONAGGIOTROVATO>-1
  1673.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1674.   For A=0 To NUMEROO
  1675.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1676.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1677.     B=A
  1678.    End If 
  1679.   Next A
  1680.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1681.    Pop Proc
  1682.   End If 
  1683.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1684.    A=B
  1685.   Else 
  1686.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1687.    B=0
  1688.    For A=0 To NUMEROO
  1689.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1690.      OGGETTODELPERSONAGGIOP(B)=A
  1691.      Inc B
  1692.     End If 
  1693.    Next A
  1694.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1695.   End If 
  1696.   For A=0 To NUMEROO
  1697.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1698.     POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1699.     If Btst(1,TIPOO(A))=True
  1700.      If PERSONAGGIOTROVATO=0
  1701.       Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1702.      End If 
  1703.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1704.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1705.     Else 
  1706.      If PERSONAGGIOTROVATO=0
  1707.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1708.      End If 
  1709.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1710.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1711.     End If 
  1712.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1713.      For B=0 To NUMEROO
  1714.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1715.        If Btst(1,TIPOO(B))=True
  1716.         Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1717.         Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1718.        Else 
  1719.         Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1720.         Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1721.        End If 
  1722.       End If 
  1723.      Next B
  1724.      For B=1 To NUMEROP
  1725.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1726.        Add PESONETTOP(P),-PESOP(B)*1000
  1727.        Add PESONETTOP(P),-PESONETTOP(B)
  1728.        Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1729.        Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1730.       End If 
  1731.      Next B
  1732.     End If 
  1733.     If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1734.      If PERSONAGGIOTROVATO=0
  1735.       Print NOMEP$(P);" ti d� 1 ";
  1736.      Else 
  1737.       Print NOMEP$(P);" d� 1 ";
  1738.      End If 
  1739.      If Btst(1,TIPOO(A))=True
  1740.       Print NOMESRO$(CATEGORIAO(A));
  1741.      Else 
  1742.       Print NOMESCO$(CATEGORIAO(A));
  1743.      End If 
  1744.      If PERSONAGGIOTROVATO=0
  1745.       Print 
  1746.      Else 
  1747.       Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1748.      End If 
  1749.     End If 
  1750.     Dec PARAAAZIONEP(AZIONE,P)
  1751.     If PARAAAZIONEP(AZIONE,P)=0
  1752.      FINEA(AZIONE,P)=True
  1753.     End If 
  1754.     Exit 
  1755.    End If 
  1756.   Next A
  1757.  End If 
  1758. End Proc
  1759. Procedure DAIAPAP[AZIONE,P]
  1760.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1761.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1762.   PERSONAGGIOTROVATO=A
  1763.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1764.   PERSONAGGIOTROVATO=A
  1765.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1766.   PERSONAGGIOTROVATO=A
  1767.  End If 
  1768.  If PERSONAGGIOTROVATO>-1
  1769.   For A=0 To NUMEROP
  1770.    If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1771.     POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1772.     Add PESONETTOP(P),-PESOP(A)*1000
  1773.     Add PESONETTOP(P),-PESONETTOP(A)
  1774.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1775.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1776.     If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1777.      If PERSONAGGIOTROVATO=0
  1778.       Print NOMEP$(P);" ti d� ";
  1779.      Else 
  1780.       Print NOMEP$(P);" d� ";
  1781.      End If 
  1782.      Print NOMEP$(A);
  1783.      If PERSONAGGIOTROVATO=0
  1784.       Print 
  1785.      Else 
  1786.       Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1787.      End If 
  1788.     End If 
  1789.     Dec PARAAAZIONEP(AZIONE,P)
  1790.     If PARAAAZIONEP(AZIONE,P)=0
  1791.      FINEA(AZIONE,P)=True
  1792.     End If 
  1793.     Exit 
  1794.    End If 
  1795.   Next A
  1796.  End If 
  1797. End Proc
  1798. Procedure DAIAPPA[AZIONE,P]
  1799.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1800.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1801.   PERSONAGGIOTROVATO=A
  1802.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1803.   PERSONAGGIOTROVATO=A
  1804.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1805.   PERSONAGGIOTROVATO=A
  1806.  End If 
  1807.  If PERSONAGGIOTROVATO>-1
  1808.   A=PARAAAZIONEP(AZIONE,P)
  1809.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1810.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1811.    Add PESONETTOP(P),-PESOP(A)*1000
  1812.    Add PESONETTOP(P),-PESONETTOP(A)
  1813.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1814.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1815.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1816.     If PERSONAGGIOTROVATO=0
  1817.      Print NOMEP$(P);" ti d� ";
  1818.     Else 
  1819.      Print NOMEP$(P);" d� ";
  1820.     End If 
  1821.     Print NOMEP$(A);
  1822.     If PERSONAGGIOTROVATO=0
  1823.      Print 
  1824.     Else 
  1825.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1826.     End If 
  1827.    End If 
  1828.    FINEA(AZIONE,P)=True
  1829.   End If 
  1830.  End If 
  1831. End Proc
  1832. Procedure DAIAPABO[AZIONE,P]
  1833.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1834.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1835.   PERSONAGGIOTROVATO=A
  1836.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1837.   PERSONAGGIOTROVATO=A
  1838.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1839.   PERSONAGGIOTROVATO=A
  1840.  End If 
  1841.  If PERSONAGGIOTROVATO>-1
  1842.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1843.   For A=0 To NUMEROO
  1844.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1845.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1846.     B=A
  1847.    End If 
  1848.   Next A
  1849.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1850.    Pop Proc
  1851.   End If 
  1852.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1853.    A=B
  1854.   Else 
  1855.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1856.    B=0
  1857.    For A=0 To NUMEROO
  1858.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1859.      OGGETTODELPERSONAGGIOP(B)=A
  1860.      Inc B
  1861.     End If 
  1862.    Next A
  1863.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1864.   End If 
  1865.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1866.   If Btst(1,TIPOO(A))=True
  1867.    If PERSONAGGIOTROVATO=0
  1868.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1869.    End If 
  1870.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1871.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1872.   Else 
  1873.    If PERSONAGGIOTROVATO=0
  1874.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1875.    End If 
  1876.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1877.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1878.   End If 
  1879.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1880.    For B=0 To NUMEROO
  1881.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1882.      If Btst(1,TIPOO(B))=True
  1883.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1884.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1885.      Else 
  1886.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1887.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1888.      End If 
  1889.     End If 
  1890.    Next B
  1891.    For B=1 To NUMEROP
  1892.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1893.      Add PESONETTOP(P),-PESOP(B)*1000
  1894.      Add PESONETTOP(P),-PESONETTOP(B)
  1895.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1896.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1897.     End If 
  1898.    Next B
  1899.   End If 
  1900.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1901.    If PERSONAGGIOTROVATO=0
  1902.     Print NOMEP$(P);" ti d� 1 ";
  1903.    Else 
  1904.     Print NOMEP$(P);" d� 1 ";
  1905.    End If 
  1906.    If Btst(1,TIPOO(A))=True
  1907.     Print NOMESRO$(CATEGORIAO(A));
  1908.    Else 
  1909.     Print NOMESCO$(CATEGORIAO(A));
  1910.    End If 
  1911.    If PERSONAGGIOTROVATO=0
  1912.     Print 
  1913.    Else 
  1914.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1915.    End If 
  1916.   End If 
  1917.   Dec PARABAZIONEP(AZIONE,P)
  1918.   If PARABAZIONEP(AZIONE,P)=0
  1919.    FINEA(AZIONE,P)=True
  1920.   End If 
  1921.  End If 
  1922. End Proc
  1923. Procedure DAIAPABOC[AZIONE,P]
  1924.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1925.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1926.   PERSONAGGIOTROVATO=A
  1927.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1928.   PERSONAGGIOTROVATO=A
  1929.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1930.   PERSONAGGIOTROVATO=A
  1931.  End If 
  1932.  If PERSONAGGIOTROVATO>-1
  1933.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1934.   For A=0 To NUMEROO
  1935.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1936.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1937.     B=A
  1938.    End If 
  1939.   Next A
  1940.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1941.    Pop Proc
  1942.   End If 
  1943.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1944.    A=B
  1945.   Else 
  1946.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1947.    B=0
  1948.    For A=0 To NUMEROO
  1949.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1950.      OGGETTODELPERSONAGGIOP(B)=A
  1951.      Inc B
  1952.     End If 
  1953.    Next A
  1954.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1955.   End If 
  1956.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1957.   If Btst(1,TIPOO(A))=True
  1958.    If PERSONAGGIOTROVATO=0
  1959.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1960.    End If 
  1961.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1962.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1963.   Else 
  1964.    If PERSONAGGIOTROVATO=0
  1965.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1966.    End If 
  1967.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1968.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1969.   End If 
  1970.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1971.    For B=0 To NUMEROO
  1972.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1973.      If Btst(1,TIPOO(B))=True
  1974.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1975.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1976.      Else 
  1977.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1978.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1979.      End If 
  1980.     End If 
  1981.    Next B
  1982.    For B=1 To NUMEROP
  1983.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1984.      Add PESONETTOP(P),-PESOP(B)*1000
  1985.      Add PESONETTOP(P),-PESONETTOP(B)
  1986.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1987.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1988.     End If 
  1989.    Next B
  1990.   End If 
  1991.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1992.    If PERSONAGGIOTROVATO=0
  1993.     Print NOMEP$(P);" ti d� 1 ";
  1994.    Else 
  1995.     Print NOMEP$(P);" d� 1 ";
  1996.    End If 
  1997.    If Btst(1,TIPOO(A))=True
  1998.     Print NOMESRO$(CATEGORIAO(A));
  1999.    Else 
  2000.     Print NOMESCO$(CATEGORIAO(A));
  2001.    End If 
  2002.    If PERSONAGGIOTROVATO=0
  2003.     Print 
  2004.    Else 
  2005.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2006.    End If 
  2007.   End If 
  2008.   Dec PARABAZIONEP(AZIONE,P)
  2009.   If PARABAZIONEP(AZIONE,P)=0
  2010.    FINEA(AZIONE,P)=True
  2011.   End If 
  2012.  End If 
  2013. End Proc
  2014. Procedure DAIAPABOTC[AZIONE,P]
  2015.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2016.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2017.   PERSONAGGIOTROVATO=A
  2018.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2019.   PERSONAGGIOTROVATO=A
  2020.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2021.   PERSONAGGIOTROVATO=A
  2022.  End If 
  2023.  If PERSONAGGIOTROVATO>-1
  2024.   NUMEROOGGETTODELPERSONAGGIOP=-1
  2025.   For A=0 To NUMEROO
  2026.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2027.     Inc NUMEROOGGETTODELPERSONAGGIOP
  2028.     B=A
  2029.    End If 
  2030.   Next A
  2031.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  2032.    Pop Proc
  2033.   End If 
  2034.   If NUMEROOGGETTODELPERSONAGGIOP=0
  2035.    A=B
  2036.   Else 
  2037.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  2038.    B=0
  2039.    For A=0 To NUMEROO
  2040.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2041.      OGGETTODELPERSONAGGIOP(B)=A
  2042.      Inc B
  2043.     End If 
  2044.    Next A
  2045.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  2046.   End If 
  2047.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  2048.   If Btst(1,TIPOO(A))=True
  2049.    If PERSONAGGIOTROVATO=0
  2050.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  2051.    End If 
  2052.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  2053.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  2054.   Else 
  2055.    If PERSONAGGIOTROVATO=0
  2056.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  2057.    End If 
  2058.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  2059.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  2060.   End If 
  2061.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  2062.    For B=0 To NUMEROO
  2063.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  2064.      If Btst(1,TIPOO(B))=True
  2065.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  2066.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  2067.      Else 
  2068.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  2069.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  2070.      End If 
  2071.     End If 
  2072.    Next B
  2073.    For B=1 To NUMEROP
  2074.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  2075.      Add PESONETTOP(P),-PESOP(B)*1000
  2076.      Add PESONETTOP(P),-PESONETTOP(B)
  2077.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  2078.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  2079.     End If 
  2080.    Next B
  2081.   End If 
  2082.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2083.    If PERSONAGGIOTROVATO=0
  2084.     Print NOMEP$(P);" ti d� 1 ";
  2085.    Else 
  2086.     Print NOMEP$(P);" d� 1 ";
  2087.    End If 
  2088.    If Btst(1,TIPOO(A))=True
  2089.     Print NOMESRO$(CATEGORIAO(A));
  2090.    Else 
  2091.     Print NOMESCO$(CATEGORIAO(A));
  2092.    End If 
  2093.    If PERSONAGGIOTROVATO=0
  2094.     Print 
  2095.    Else 
  2096.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2097.    End If 
  2098.   End If 
  2099.   Dec PARABAZIONEP(AZIONE,P)
  2100.   If PARABAZIONEP(AZIONE,P)=0
  2101.    FINEA(AZIONE,P)=True
  2102.   End If 
  2103.  End If 
  2104. End Proc
  2105. Procedure DAIAPABP[AZIONE,P]
  2106.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2107.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2108.   PERSONAGGIOTROVATO=A
  2109.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2110.   PERSONAGGIOTROVATO=A
  2111.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2112.   PERSONAGGIOTROVATO=A
  2113.  End If 
  2114.  If PERSONAGGIOTROVATO>-1
  2115.   For A=0 To NUMEROP
  2116.    If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2117.     POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2118.     Add PESONETTOP(P),-PESOP(A)*1000
  2119.     Add PESONETTOP(P),-PESONETTOP(A)
  2120.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2121.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2122.     If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2123.      If PERSONAGGIOTROVATO=0
  2124.       Print NOMEP$(P);" ti d� ";
  2125.      Else 
  2126.       Print NOMEP$(P);" d� ";
  2127.      End If 
  2128.      Print NOMEP$(A);
  2129.      If PERSONAGGIOTROVATO=0
  2130.       Print 
  2131.      Else 
  2132.       Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2133.      End If 
  2134.     End If 
  2135.     Dec PARABAZIONEP(AZIONE,P)
  2136.     If PARABAZIONEP(AZIONE,P)=0
  2137.      FINEA(AZIONE,P)=True
  2138.     End If 
  2139.     Exit 
  2140.    End If 
  2141.   Next A
  2142.  End If 
  2143. End Proc
  2144. Procedure DAIAPAPB[AZIONE,P]
  2145.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2146.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2147.   PERSONAGGIOTROVATO=A
  2148.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2149.   PERSONAGGIOTROVATO=A
  2150.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2151.   PERSONAGGIOTROVATO=A
  2152.  End If 
  2153.  If PERSONAGGIOTROVATO>-1
  2154.   A=PARABAZIONEP(AZIONE,P)
  2155.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2156.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2157.    Add PESONETTOP(P),-PESOP(A)*1000
  2158.    Add PESONETTOP(P),-PESONETTOP(A)
  2159.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2160.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2161.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2162.     If PERSONAGGIOTROVATO=0
  2163.      Print NOMEP$(P);" ti d� ";
  2164.     Else 
  2165.      Print NOMEP$(P);" d� ";
  2166.     End If 
  2167.     Print NOMEP$(A);
  2168.     If PERSONAGGIOTROVATO=0
  2169.      Print 
  2170.     Else 
  2171.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2172.     End If 
  2173.    End If 
  2174.    FINEA(AZIONE,P)=True
  2175.   End If 
  2176.  End If 
  2177. End Proc
  2178. Procedure DAIDEISOLDI
  2179.  Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi dare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDIDADARE$;
  2180.  Curs Off 
  2181.  If SOLDIDADARE$<>""
  2182.   SOLDIDADARE=Val(SOLDIDADARE$)
  2183.   Proc LIMITI[SOLDIDADARE,0,SOLDIP(0)] : SOLDIDADARE=Param
  2184.   If SOLDIDADARE>0
  2185.    Add SOLDIP(0),-SOLDIDADARE*PESOS
  2186.    Proc PERSONAGGIORICEVENTE["S",SOLDIDADARE]
  2187.   End If 
  2188.  End If 
  2189. End Proc
  2190. Procedure DAIUNOGGETTO
  2191.  For A=0 To NUMEROCO
  2192.   If OGGETTODELPERSONAGGIO0(A)>0
  2193.    Inc CATEGORIEOGGETTI
  2194.   End If 
  2195.   If RESTODELPERSONAGGIO0(A)>0
  2196.    Inc CATEGORIEOGGETTI
  2197.   End If 
  2198.  Next A
  2199.  If CATEGORIEOGGETTI>0
  2200.   If CATEGORIEOGGETTI>1
  2201.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi dare ?>";OGGETTO$;
  2202.    Curs Off 
  2203.    For A=0 To NUMEROO
  2204.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2205.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  2206.       Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2207.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  2208.       Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2209.      End If 
  2210.     End If 
  2211.    Next A
  2212.   Else 
  2213.    For A=0 To NUMEROO
  2214.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2215.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2216.     End If 
  2217.    Next A
  2218.   End If 
  2219.  End If 
  2220. End Proc
  2221. Procedure DAIUNPERSONAGGIO
  2222.  For A=1 To NUMEROP
  2223.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2224.    Inc PERSONAGGI
  2225.   End If 
  2226.  Next A
  2227.  If PERSONAGGI>0
  2228.   If PERSONAGGI>1
  2229.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi dare ?>";PERSONAGGIO$;
  2230.    Curs Off 
  2231.    For A=0 To NUMEROP
  2232.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2233.      Proc PERSONAGGIORICEVENTE["P",A]
  2234.      Exit 
  2235.     End If 
  2236.    Next A
  2237.    If A=NUMEROP+1
  2238.     Locate 0,ULTIMALINEA : Cline : Print "Non trasporti nessun ";PERSONAGGIO$;
  2239.     If _MUSICA=False
  2240.      Bell 1
  2241.     End If 
  2242.     Proc _ASPETTA
  2243.    End If 
  2244.   Else 
  2245.    For A=0 To NUMEROP
  2246.     If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2247.      Proc PERSONAGGIORICEVENTE["P",A]
  2248.     End If 
  2249.    Next A
  2250.   End If 
  2251.  End If 
  2252. End Proc
  2253. Procedure DAVARIABILIABANCO[M0DO]
  2254.  Shared LUNGHEZZABANCO
  2255.  SENZAMEMORIA=False
  2256.  If M0DO=True
  2257.   TIC["Vuoi salvare anche il tempo trascorso di gioco (s/n) ?",ULTIMALINEA]
  2258.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  2259.   If RISPOSTA$="s"
  2260.    TEMP0TRASCORSODASALVARE=TEMP0TRASCORSO
  2261.   Else 
  2262.    TEMP0TRASCORSODASALVARE=0
  2263.   End If 
  2264.   TIC["Un attimo che converto i dati...",ULTIMALINEA]
  2265.   Reserve As Work BANCO,LUNGHEZZABANCO
  2266.   INDIRIZZO=Start(BANCO)
  2267.   Poke$ INDIRIZZO,"Adventures Conceiver"+Chr$(10)
  2268.   Add INDIRIZZO,21
  2269.   DATO$="Nemici attivi o no:"+Chr$(10)
  2270.   Poke$ INDIRIZZO,DATO$
  2271.   Add INDIRIZZO,Len(DATO$)
  2272.   DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2273.   Poke$ INDIRIZZO,DATO$
  2274.   Add INDIRIZZO,Len(DATO$)
  2275.   DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2276.   Poke$ INDIRIZZO,DATO$
  2277.   Add INDIRIZZO,Len(DATO$)
  2278.   DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2279.   Poke$ INDIRIZZO,DATO$
  2280.   Add INDIRIZZO,Len(DATO$)
  2281.   For A=0 To NUMEROCO
  2282.    DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2283.    Poke$ INDIRIZZO,DATO$
  2284.    Add INDIRIZZO,Len(DATO$)
  2285.    DATO$="Nome singolare:"+Chr$(10)
  2286.    Poke$ INDIRIZZO,DATO$
  2287.    Add INDIRIZZO,Len(DATO$)
  2288.    DATO$=NOMESCO$(A)+Chr$(10)
  2289.    Poke$ INDIRIZZO,DATO$
  2290.    Add INDIRIZZO,Len(DATO$)
  2291.    DATO$="Nome plurale:"+Chr$(10)
  2292.    Poke$ INDIRIZZO,DATO$
  2293.    Add INDIRIZZO,Len(DATO$)
  2294.    DATO$=NOMEPCO$(A)+Chr$(10)
  2295.    Poke$ INDIRIZZO,DATO$
  2296.    Add INDIRIZZO,Len(DATO$)
  2297.    DATO$="Nome singolare resto:"+Chr$(10)
  2298.    Poke$ INDIRIZZO,DATO$
  2299.    Add INDIRIZZO,Len(DATO$)
  2300.    DATO$=NOMESRO$(A)+Chr$(10)
  2301.    Poke$ INDIRIZZO,DATO$
  2302.    Add INDIRIZZO,Len(DATO$)
  2303.    DATO$="Nome plurale resto:"+Chr$(10)
  2304.    Poke$ INDIRIZZO,DATO$
  2305.    Add INDIRIZZO,Len(DATO$)
  2306.    DATO$=NOMEPRO$(A)+Chr$(10)
  2307.    Poke$ INDIRIZZO,DATO$
  2308.    Add INDIRIZZO,Len(DATO$)
  2309.    DATO$="Peso:"+Chr$(10)
  2310.    Poke$ INDIRIZZO,DATO$
  2311.    Add INDIRIZZO,Len(DATO$)
  2312.    DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2313.    Poke$ INDIRIZZO,DATO$
  2314.    Add INDIRIZZO,Len(DATO$)
  2315.    DATO$="Peso resto:"+Chr$(10)
  2316.    Poke$ INDIRIZZO,DATO$
  2317.    Add INDIRIZZO,Len(DATO$)
  2318.    DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2319.    Poke$ INDIRIZZO,DATO$
  2320.    Add INDIRIZZO,Len(DATO$)
  2321.    DATO$="Tipo:"+Chr$(10)
  2322.    Poke$ INDIRIZZO,DATO$
  2323.    Add INDIRIZZO,Len(DATO$)
  2324.    DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2325.    Poke$ INDIRIZZO,DATO$
  2326.    Add INDIRIZZO,Len(DATO$)
  2327.    DATO$="Parametro tipo:"+Chr$(10)
  2328.    Poke$ INDIRIZZO,DATO$
  2329.    Add INDIRIZZO,Len(DATO$)
  2330.    DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2331.    Poke$ INDIRIZZO,DATO$
  2332.    Add INDIRIZZO,Len(DATO$)
  2333.    DATO$="Descrizione:"+Chr$(10)
  2334.    Poke$ INDIRIZZO,DATO$
  2335.    Add INDIRIZZO,Len(DATO$)
  2336.    DATO$=DESCRIZIONECO$(A)+"|"
  2337.    Poke$ INDIRIZZO,DATO$
  2338.    Add INDIRIZZO,Len(DATO$)
  2339.    DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2340.    Poke$ INDIRIZZO,DATO$
  2341.    Add INDIRIZZO,Len(DATO$)
  2342.    DATO$=Str$(OGGETTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2343.    Poke$ INDIRIZZO,DATO$
  2344.    Add INDIRIZZO,Len(DATO$)
  2345.    DATO$="Resto del personaggio zero:"+Chr$(10)
  2346.    Poke$ INDIRIZZO,DATO$
  2347.    Add INDIRIZZO,Len(DATO$)
  2348.    DATO$=Str$(RESTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2349.    Poke$ INDIRIZZO,DATO$
  2350.    Add INDIRIZZO,Len(DATO$)
  2351.    DATO$="Oggetto dato:"+Chr$(10)
  2352.    Poke$ INDIRIZZO,DATO$
  2353.    Add INDIRIZZO,Len(DATO$)
  2354.    DATO$=Str$(OGGETTODATOOLASCIATO(A))-" "+Chr$(10)
  2355.    Poke$ INDIRIZZO,DATO$
  2356.    Add INDIRIZZO,Len(DATO$)
  2357.   Next A
  2358.   DATO$="Numero degli edifici:"+Chr$(10)
  2359.   Poke$ INDIRIZZO,DATO$
  2360.   Add INDIRIZZO,Len(DATO$)
  2361.   DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2362.   Poke$ INDIRIZZO,DATO$
  2363.   Add INDIRIZZO,Len(DATO$)
  2364.   If NUMEROE>-1
  2365.    For A=0 To NUMEROE
  2366.     DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2367.     Poke$ INDIRIZZO,DATO$
  2368.     Add INDIRIZZO,Len(DATO$)
  2369.     DATO$="Nome:"+Chr$(10)
  2370.     Poke$ INDIRIZZO,DATO$
  2371.     Add INDIRIZZO,Len(DATO$)
  2372.     DATO$=NOMEE$(A)+Chr$(10)
  2373.     Poke$ INDIRIZZO,DATO$
  2374.     Add INDIRIZZO,Len(DATO$)
  2375.     DATO$="Descrizione:"+Chr$(10)
  2376.     Poke$ INDIRIZZO,DATO$
  2377.     Add INDIRIZZO,Len(DATO$)
  2378.     DATO$=DESCRIZIONEE$(A)+"|"
  2379.     Poke$ INDIRIZZO,DATO$
  2380.     Add INDIRIZZO,Len(DATO$)
  2381.     DATO$="Numero delle stanze:"+Chr$(10)
  2382.     Poke$ INDIRIZZO,DATO$
  2383.     Add INDIRIZZO,Len(DATO$)
  2384.     DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2385.     Poke$ INDIRIZZO,DATO$
  2386.     Add INDIRIZZO,Len(DATO$)
  2387.     For B=0 To NUMEROS(A)
  2388.      DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2389.      Poke$ INDIRIZZO,DATO$
  2390.      Add INDIRIZZO,Len(DATO$)
  2391.      DATO$="Nome:"+Chr$(10)
  2392.      Poke$ INDIRIZZO,DATO$
  2393.      Add INDIRIZZO,Len(DATO$)
  2394.      DATO$=NOMES$(B,A)+Chr$(10)
  2395.      Poke$ INDIRIZZO,DATO$
  2396.      Add INDIRIZZO,Len(DATO$)
  2397.      DATO$="Luogo a Nord:"+Chr$(10)
  2398.      Poke$ INDIRIZZO,DATO$
  2399.      Add INDIRIZZO,Len(DATO$)
  2400.      DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2401.      Poke$ INDIRIZZO,DATO$
  2402.      Add INDIRIZZO,Len(DATO$)
  2403.      DATO$="Luogo a NordEst:"+Chr$(10)
  2404.      Poke$ INDIRIZZO,DATO$
  2405.      Add INDIRIZZO,Len(DATO$)
  2406.      DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2407.      Poke$ INDIRIZZO,DATO$
  2408.      Add INDIRIZZO,Len(DATO$)
  2409.      DATO$="Luogo a Est:"+Chr$(10)
  2410.      Poke$ INDIRIZZO,DATO$
  2411.      Add INDIRIZZO,Len(DATO$)
  2412.      DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2413.      Poke$ INDIRIZZO,DATO$
  2414.      Add INDIRIZZO,Len(DATO$)
  2415.      DATO$="Luogo a SudEst:"+Chr$(10)
  2416.      Poke$ INDIRIZZO,DATO$
  2417.      Add INDIRIZZO,Len(DATO$)
  2418.      DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2419.      Poke$ INDIRIZZO,DATO$
  2420.      Add INDIRIZZO,Len(DATO$)
  2421.      DATO$="Luogo a Sud:"+Chr$(10)
  2422.      Poke$ INDIRIZZO,DATO$
  2423.      Add INDIRIZZO,Len(DATO$)
  2424.      DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2425.      Poke$ INDIRIZZO,DATO$
  2426.      Add INDIRIZZO,Len(DATO$)
  2427.      DATO$="Luogo a SudOvest:"+Chr$(10)
  2428.      Poke$ INDIRIZZO,DATO$
  2429.      Add INDIRIZZO,Len(DATO$)
  2430.      DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2431.      Poke$ INDIRIZZO,DATO$
  2432.      Add INDIRIZZO,Len(DATO$)
  2433.      DATO$="Luogo a Ovest:"+Chr$(10)
  2434.      Poke$ INDIRIZZO,DATO$
  2435.      Add INDIRIZZO,Len(DATO$)
  2436.      DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2437.      Poke$ INDIRIZZO,DATO$
  2438.      Add INDIRIZZO,Len(DATO$)
  2439.      DATO$="Luogo a NordOvest:"+Chr$(10)
  2440.      Poke$ INDIRIZZO,DATO$
  2441.      Add INDIRIZZO,Len(DATO$)
  2442.      DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2443.      Poke$ INDIRIZZO,DATO$
  2444.      Add INDIRIZZO,Len(DATO$)
  2445.      DATO$="Luogo Sopra:"+Chr$(10)
  2446.      Poke$ INDIRIZZO,DATO$
  2447.      Add INDIRIZZO,Len(DATO$)
  2448.      DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2449.      Poke$ INDIRIZZO,DATO$
  2450.      Add INDIRIZZO,Len(DATO$)
  2451.      DATO$="Luogo Sotto:"+Chr$(10)
  2452.      Poke$ INDIRIZZO,DATO$
  2453.      Add INDIRIZZO,Len(DATO$)
  2454.      DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2455.      Poke$ INDIRIZZO,DATO$
  2456.      Add INDIRIZZO,Len(DATO$)
  2457.      DATO$="Soldi:"+Chr$(10)
  2458.      Poke$ INDIRIZZO,DATO$
  2459.      Add INDIRIZZO,Len(DATO$)
  2460.      DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2461.      Poke$ INDIRIZZO,DATO$
  2462.      Add INDIRIZZO,Len(DATO$)
  2463.      DATO$="Descrizione:"+Chr$(10)
  2464.      Poke$ INDIRIZZO,DATO$
  2465.      Add INDIRIZZO,Len(DATO$)
  2466.      DATO$=DESCRIZIONES$(B,A)+"|"
  2467.      Poke$ INDIRIZZO,DATO$
  2468.      Add INDIRIZZO,Len(DATO$)
  2469.     Next B
  2470.    Next A
  2471.   End If 
  2472.   DATO$="Numero dei luoghi:"+Chr$(10)
  2473.   Poke$ INDIRIZZO,DATO$
  2474.   Add INDIRIZZO,Len(DATO$)
  2475.   DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2476.   Poke$ INDIRIZZO,DATO$
  2477.   Add INDIRIZZO,Len(DATO$)
  2478.   For A=0 To NUMEROL
  2479.    DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2480.    Poke$ INDIRIZZO,DATO$
  2481.    Add INDIRIZZO,Len(DATO$)
  2482.    DATO$="Nome:"+Chr$(10)
  2483.    Poke$ INDIRIZZO,DATO$
  2484.    Add INDIRIZZO,Len(DATO$)
  2485.    DATO$=NOMEL$(A)+Chr$(10)
  2486.    Poke$ INDIRIZZO,DATO$
  2487.    Add INDIRIZZO,Len(DATO$)
  2488.    DATO$="Luogo a Nord:"+Chr$(10)
  2489.    Poke$ INDIRIZZO,DATO$
  2490.    Add INDIRIZZO,Len(DATO$)
  2491.    DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  2492.    Poke$ INDIRIZZO,DATO$
  2493.    Add INDIRIZZO,Len(DATO$)
  2494.    DATO$="Luogo a NordEst:"+Chr$(10)
  2495.    Poke$ INDIRIZZO,DATO$
  2496.    Add INDIRIZZO,Len(DATO$)
  2497.    DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  2498.    Poke$ INDIRIZZO,DATO$
  2499.    Add INDIRIZZO,Len(DATO$)
  2500.    DATO$="Luogo a Est:"+Chr$(10)
  2501.    Poke$ INDIRIZZO,DATO$
  2502.    Add INDIRIZZO,Len(DATO$)
  2503.    DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  2504.    Poke$ INDIRIZZO,DATO$
  2505.    Add INDIRIZZO,Len(DATO$)
  2506.    DATO$="Luogo a SudEst:"+Chr$(10)
  2507.    Poke$ INDIRIZZO,DATO$
  2508.    Add INDIRIZZO,Len(DATO$)
  2509.    DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  2510.    Poke$ INDIRIZZO,DATO$
  2511.    Add INDIRIZZO,Len(DATO$)
  2512.    DATO$="Luogo a Sud:"+Chr$(10)
  2513.    Poke$ INDIRIZZO,DATO$
  2514.    Add INDIRIZZO,Len(DATO$)
  2515.    DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  2516.    Poke$ INDIRIZZO,DATO$
  2517.    Add INDIRIZZO,Len(DATO$)
  2518.    DATO$="Luogo a SudOvest:"+Chr$(10)
  2519.    Poke$ INDIRIZZO,DATO$
  2520.    Add INDIRIZZO,Len(DATO$)
  2521.    DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  2522.    Poke$ INDIRIZZO,DATO$
  2523.    Add INDIRIZZO,Len(DATO$)
  2524.    DATO$="Luogo a Ovest:"+Chr$(10)
  2525.    Poke$ INDIRIZZO,DATO$
  2526.    Add INDIRIZZO,Len(DATO$)
  2527.    DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  2528.    Poke$ INDIRIZZO,DATO$
  2529.    Add INDIRIZZO,Len(DATO$)
  2530.    DATO$="Luogo a NordOvest:"+Chr$(10)
  2531.    Poke$ INDIRIZZO,DATO$
  2532.    Add INDIRIZZO,Len(DATO$)
  2533.    DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  2534.    Poke$ INDIRIZZO,DATO$
  2535.    Add INDIRIZZO,Len(DATO$)
  2536.    DATO$="Luogo Sopra:"+Chr$(10)
  2537.    Poke$ INDIRIZZO,DATO$
  2538.    Add INDIRIZZO,Len(DATO$)
  2539.    DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  2540.    Poke$ INDIRIZZO,DATO$
  2541.    Add INDIRIZZO,Len(DATO$)
  2542.    DATO$="Luogo Sotto:"+Chr$(10)
  2543.    Poke$ INDIRIZZO,DATO$
  2544.    Add INDIRIZZO,Len(DATO$)
  2545.    DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  2546.    Poke$ INDIRIZZO,DATO$
  2547.    Add INDIRIZZO,Len(DATO$)
  2548.    DATO$="Soldi:"+Chr$(10)
  2549.    Poke$ INDIRIZZO,DATO$
  2550.    Add INDIRIZZO,Len(DATO$)
  2551.    DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  2552.    Poke$ INDIRIZZO,DATO$
  2553.    Add INDIRIZZO,Len(DATO$)
  2554.    DATO$="Regione:"+Chr$(10)
  2555.    Poke$ INDIRIZZO,DATO$
  2556.    Add INDIRIZZO,Len(DATO$)
  2557.    DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  2558.    Poke$ INDIRIZZO,DATO$
  2559.    Add INDIRIZZO,Len(DATO$)
  2560.    DATO$="Tipo di luogo:"+Chr$(10)
  2561.    Poke$ INDIRIZZO,DATO$
  2562.    Add INDIRIZZO,Len(DATO$)
  2563.    DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  2564.    Poke$ INDIRIZZO,DATO$
  2565.    Add INDIRIZZO,Len(DATO$)
  2566.    DATO$="Descrizione:"+Chr$(10)
  2567.    Poke$ INDIRIZZO,DATO$
  2568.    Add INDIRIZZO,Len(DATO$)
  2569.    DATO$=DESCRIZIONEL$(A)+"|"
  2570.    Poke$ INDIRIZZO,DATO$
  2571.    Add INDIRIZZO,Len(DATO$)
  2572.   Next A
  2573.   DATO$="Numero degli oggetti:"+Chr$(10)
  2574.   Poke$ INDIRIZZO,DATO$
  2575.   Add INDIRIZZO,Len(DATO$)
  2576.   DATO$=Str$(NUMEROO)-" "+Chr$(10)
  2577.   Poke$ INDIRIZZO,DATO$
  2578.   Add INDIRIZZO,Len(DATO$)
  2579.   For A=0 To NUMEROO
  2580.    DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  2581.    Poke$ INDIRIZZO,DATO$
  2582.    Add INDIRIZZO,Len(DATO$)
  2583.    DATO$="Categoria:"+Chr$(10)
  2584.    Poke$ INDIRIZZO,DATO$
  2585.    Add INDIRIZZO,Len(DATO$)
  2586.    DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  2587.    Poke$ INDIRIZZO,DATO$
  2588.    Add INDIRIZZO,Len(DATO$)
  2589.    DATO$="Posizione:"+Chr$(10)
  2590.    Poke$ INDIRIZZO,DATO$
  2591.    Add INDIRIZZO,Len(DATO$)
  2592.    DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  2593.    Poke$ INDIRIZZO,DATO$
  2594.    Add INDIRIZZO,Len(DATO$)
  2595.    DATO$="Tipo:"+Chr$(10)
  2596.    Poke$ INDIRIZZO,DATO$
  2597.    Add INDIRIZZO,Len(DATO$)
  2598.    DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  2599.    Poke$ INDIRIZZO,DATO$
  2600.    Add INDIRIZZO,Len(DATO$)
  2601.   Next A
  2602.   DATO$="Numero dei personaggi:"+Chr$(10)
  2603.   Poke$ INDIRIZZO,DATO$
  2604.   Add INDIRIZZO,Len(DATO$)
  2605.   DATO$=Str$(NUMEROP)-" "+Chr$(10)
  2606.   Poke$ INDIRIZZO,DATO$
  2607.   Add INDIRIZZO,Len(DATO$)
  2608.   For A=0 To NUMEROP
  2609.    DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  2610.    Poke$ INDIRIZZO,DATO$
  2611.    Add INDIRIZZO,Len(DATO$)
  2612.    DATO$="Nome:"+Chr$(10)
  2613.    Poke$ INDIRIZZO,DATO$
  2614.    Add INDIRIZZO,Len(DATO$)
  2615.    DATO$=NOMEP$(A)+Chr$(10)
  2616.    Poke$ INDIRIZZO,DATO$
  2617.    Add INDIRIZZO,Len(DATO$)
  2618.    DATO$="Posizione:"+Chr$(10)
  2619.    Poke$ INDIRIZZO,DATO$
  2620.    Add INDIRIZZO,Len(DATO$)
  2621.    DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  2622.    Poke$ INDIRIZZO,DATO$
  2623.    Add INDIRIZZO,Len(DATO$)
  2624.    DATO$="Costituzione:"+Chr$(10)
  2625.    Poke$ INDIRIZZO,DATO$
  2626.    Add INDIRIZZO,Len(DATO$)
  2627.    DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  2628.    Poke$ INDIRIZZO,DATO$
  2629.    Add INDIRIZZO,Len(DATO$)
  2630.    DATO$="Destrezza:"+Chr$(10)
  2631.    Poke$ INDIRIZZO,DATO$
  2632.    Add INDIRIZZO,Len(DATO$)
  2633.    DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  2634.    Poke$ INDIRIZZO,DATO$
  2635.    Add INDIRIZZO,Len(DATO$)
  2636.    DATO$="Forza:"+Chr$(10)
  2637.    Poke$ INDIRIZZO,DATO$
  2638.    Add INDIRIZZO,Len(DATO$)
  2639.    DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  2640.    Poke$ INDIRIZZO,DATO$
  2641.    Add INDIRIZZO,Len(DATO$)
  2642.    DATO$="Peso:"+Chr$(10)
  2643.    Poke$ INDIRIZZO,DATO$
  2644.    Add INDIRIZZO,Len(DATO$)
  2645.    DATO$=Str$(PESOP(A))-" "+Chr$(10)
  2646.    Poke$ INDIRIZZO,DATO$
  2647.    Add INDIRIZZO,Len(DATO$)
  2648.    DATO$="Peso netto:"+Chr$(10)
  2649.    Poke$ INDIRIZZO,DATO$
  2650.    Add INDIRIZZO,Len(DATO$)
  2651.    DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  2652.    Poke$ INDIRIZZO,DATO$
  2653.    Add INDIRIZZO,Len(DATO$)
  2654.    DATO$="Resistenza:"+Chr$(10)
  2655.    Poke$ INDIRIZZO,DATO$
  2656.    Add INDIRIZZO,Len(DATO$)
  2657.    DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  2658.    Poke$ INDIRIZZO,DATO$
  2659.    Add INDIRIZZO,Len(DATO$)
  2660.    DATO$="Soldi:"+Chr$(10)
  2661.    Poke$ INDIRIZZO,DATO$
  2662.    Add INDIRIZZO,Len(DATO$)
  2663.    DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  2664.    Poke$ INDIRIZZO,DATO$
  2665.    Add INDIRIZZO,Len(DATO$)
  2666.    DATO$="Tipo:"+Chr$(10)
  2667.    Poke$ INDIRIZZO,DATO$
  2668.    Add INDIRIZZO,Len(DATO$)
  2669.    DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  2670.    Poke$ INDIRIZZO,DATO$
  2671.    Add INDIRIZZO,Len(DATO$)
  2672.    DATO$="Descrizione:"+Chr$(10)
  2673.    Poke$ INDIRIZZO,DATO$
  2674.    Add INDIRIZZO,Len(DATO$)
  2675.    DATO$=DESCRIZIONEP$(A)+"|"
  2676.    Poke$ INDIRIZZO,DATO$
  2677.    Add INDIRIZZO,Len(DATO$)
  2678.    DATO$="Inizio sonno:"+Chr$(10)
  2679.    Poke$ INDIRIZZO,DATO$
  2680.    Add INDIRIZZO,Len(DATO$)
  2681.    DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  2682.    Poke$ INDIRIZZO,DATO$
  2683.    Add INDIRIZZO,Len(DATO$)
  2684.    DATO$="Durata sonno:"+Chr$(10)
  2685.    Poke$ INDIRIZZO,DATO$
  2686.    Add INDIRIZZO,Len(DATO$)
  2687.    DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  2688.    Poke$ INDIRIZZO,DATO$
  2689.    Add INDIRIZZO,Len(DATO$)
  2690.    DATO$="Direzione presa:"+Chr$(10)
  2691.    Poke$ INDIRIZZO,DATO$
  2692.    Add INDIRIZZO,Len(DATO$)
  2693.    DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  2694.    Poke$ INDIRIZZO,DATO$
  2695.    Add INDIRIZZO,Len(DATO$)
  2696.    DATO$="Luogo di destinazione:"+Chr$(10)
  2697.    Poke$ INDIRIZZO,DATO$
  2698.    Add INDIRIZZO,Len(DATO$)
  2699.    DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  2700.    Poke$ INDIRIZZO,DATO$
  2701.    Add INDIRIZZO,Len(DATO$)
  2702.    DATO$="Tempo di attraversamento:"+Chr$(10)
  2703.    Poke$ INDIRIZZO,DATO$
  2704.    Add INDIRIZZO,Len(DATO$)
  2705.    DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  2706.    Poke$ INDIRIZZO,DATO$
  2707.    Add INDIRIZZO,Len(DATO$)
  2708.    DATO$="Soldi ricevuti:"+Chr$(10)
  2709.    Poke$ INDIRIZZO,DATO$
  2710.    Add INDIRIZZO,Len(DATO$)
  2711.    DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  2712.    Poke$ INDIRIZZO,DATO$
  2713.    Add INDIRIZZO,Len(DATO$)
  2714.    For B=0 To 7
  2715.     DATO$="Azione"+Str$(B)+">"+Chr$(10)
  2716.     Poke$ INDIRIZZO,DATO$
  2717.     Add INDIRIZZO,Len(DATO$)
  2718.     DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  2719.     Poke$ INDIRIZZO,DATO$
  2720.     Add INDIRIZZO,Len(DATO$)
  2721.     DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  2722.     Poke$ INDIRIZZO,DATO$
  2723.     Add INDIRIZZO,Len(DATO$)
  2724.     DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  2725.     Poke$ INDIRIZZO,DATO$
  2726.     Add INDIRIZZO,Len(DATO$)
  2727.     DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  2728.     Poke$ INDIRIZZO,DATO$
  2729.     Add INDIRIZZO,Len(DATO$)
  2730.     DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  2731.     Poke$ INDIRIZZO,DATO$
  2732.     Add INDIRIZZO,Len(DATO$)
  2733.     DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  2734.     Poke$ INDIRIZZO,DATO$
  2735.     Add INDIRIZZO,Len(DATO$)
  2736.     DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  2737.     Poke$ INDIRIZZO,DATO$
  2738.     Add INDIRIZZO,Len(DATO$)
  2739.    Next B
  2740.    DATO$="Posizione azione:"+Chr$(10)
  2741.    Poke$ INDIRIZZO,DATO$
  2742.    Add INDIRIZZO,Len(DATO$)
  2743.    DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  2744.    Poke$ INDIRIZZO,DATO$
  2745.    Add INDIRIZZO,Len(DATO$)
  2746.   Next A
  2747.   DATO$="Numero delle regioni:"+Chr$(10)
  2748.   Poke$ INDIRIZZO,DATO$
  2749.   Add INDIRIZZO,Len(DATO$)
  2750.   DATO$=Str$(NUMEROR)-" "+Chr$(10)
  2751.   Poke$ INDIRIZZO,DATO$
  2752.   Add INDIRIZZO,Len(DATO$)
  2753.   For A=0 To NUMEROR
  2754.    DATO$="Regione"+Str$(A)+">"+Chr$(10)
  2755.    Poke$ INDIRIZZO,DATO$
  2756.    Add INDIRIZZO,Len(DATO$)
  2757.    DATO$="Nome:"+Chr$(10)
  2758.    Poke$ INDIRIZZO,DATO$
  2759.    Add INDIRIZZO,Len(DATO$)
  2760.    DATO$=NOMER$(A)+Chr$(10)
  2761.    Poke$ INDIRIZZO,DATO$
  2762.    Add INDIRIZZO,Len(DATO$)
  2763.   Next A
  2764.   DATO$="Giornata:"+Chr$(10)
  2765.   Poke$ INDIRIZZO,DATO$
  2766.   Add INDIRIZZO,Len(DATO$)
  2767.   DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  2768.   Poke$ INDIRIZZO,DATO$
  2769.   Add INDIRIZZO,Len(DATO$)
  2770.   DATO$="Tempo trascorso:"+Chr$(10)
  2771.   Poke$ INDIRIZZO,DATO$
  2772.   Add INDIRIZZO,Len(DATO$)
  2773.   DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  2774.   Poke$ INDIRIZZO,DATO$
  2775.   Add INDIRIZZO,Len(DATO$)
  2776.   If INDIRIZZO>Start(BANCO)+Length(BANCO)
  2777.    Proc TIC["Conversione dati fallita!",ULTIMALINEA]
  2778.    Proc _ASPETTA
  2779.    SENZAMEMORIA=True
  2780.   End If 
  2781.  Else 
  2782.   Cls 
  2783.   Proc TIC["Sto calcolando la lunghezza del banco dei dati...",ULTIMALINEA]
  2784.   INDIRIZZO=21
  2785.   Print At(0,0);"Lunghezza banco>";Str$(INDIRIZZO)-" ";" Byte"
  2786.   DATO$="Nemici attivi o no:"+Chr$(10)
  2787.   Add INDIRIZZO,Len(DATO$)
  2788.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2789.   DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2790.   Add INDIRIZZO,Len(DATO$)
  2791.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2792.   DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2793.   Add INDIRIZZO,Len(DATO$)
  2794.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2795.   DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2796.   Add INDIRIZZO,Len(DATO$)
  2797.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2798.   For A=0 To NUMEROCO
  2799.    DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2800.    Add INDIRIZZO,Len(DATO$)
  2801.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2802.    DATO$="Nome singolare:"+Chr$(10)
  2803.    Add INDIRIZZO,Len(DATO$)
  2804.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2805.    DATO$=NOMESCO$(A)+Chr$(10)
  2806.    Add INDIRIZZO,Len(DATO$)
  2807.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2808.    DATO$="Nome plurale:"+Chr$(10)
  2809.    Add INDIRIZZO,Len(DATO$)
  2810.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2811.    DATO$=NOMEPCO$(A)+Chr$(10)
  2812.    Add INDIRIZZO,Len(DATO$)
  2813.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2814.    DATO$="Nome singolare resto:"+Chr$(10)
  2815.    Add INDIRIZZO,Len(DATO$)
  2816.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2817.    DATO$=NOMESRO$(A)+Chr$(10)
  2818.    Add INDIRIZZO,Len(DATO$)
  2819.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2820.    DATO$="Nome plurale resto:"+Chr$(10)
  2821.    Add INDIRIZZO,Len(DATO$)
  2822.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2823.    DATO$=NOMEPRO$(A)+Chr$(10)
  2824.    Add INDIRIZZO,Len(DATO$)
  2825.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2826.    DATO$="Peso:"+Chr$(10)
  2827.    Add INDIRIZZO,Len(DATO$)
  2828.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2829.    DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2830.    Add INDIRIZZO,Len(DATO$)
  2831.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2832.    DATO$="Peso resto:"+Chr$(10)
  2833.    Add INDIRIZZO,Len(DATO$)
  2834.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2835.    DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2836.    Add INDIRIZZO,Len(DATO$)
  2837.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2838.    DATO$="Tipo:"+Chr$(10)
  2839.    Add INDIRIZZO,Len(DATO$)
  2840.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2841.    DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2842.    Add INDIRIZZO,Len(DATO$)
  2843.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2844.    DATO$="Parametro tipo:"+Chr$(10)
  2845.    Add INDIRIZZO,Len(DATO$)
  2846.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2847.    DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2848.    Add INDIRIZZO,Len(DATO$)
  2849.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2850.    DATO$="Descrizione:"+Chr$(10)
  2851.    Add INDIRIZZO,Len(DATO$)
  2852.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2853.    DATO$=DESCRIZIONECO$(A)+"|"
  2854.    Add INDIRIZZO,Len(DATO$)
  2855.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2856.    DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2857.    Add INDIRIZZO,Len(DATO$)
  2858.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2859.    DATO$=Str$(OGGETTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2860.    Add INDIRIZZO,Len(DATO$)
  2861.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2862.    DATO$="Resto del personaggio zero:"+Chr$(10)
  2863.    Add INDIRIZZO,Len(DATO$)
  2864.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2865.    DATO$=Str$(RESTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2866.    Add INDIRIZZO,Len(DATO$)
  2867.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2868.    DATO$="Oggetto dato:"+Chr$(10)
  2869.    Add INDIRIZZO,Len(DATO$)
  2870.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2871.    DATO$=Str$(OGGETTODATOOLASCIATO(A))-" "+Chr$(10)
  2872.    Add INDIRIZZO,Len(DATO$)
  2873.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2874.   Next A
  2875.   DATO$="Numero degli edifici:"+Chr$(10)
  2876.   Add INDIRIZZO,Len(DATO$)
  2877.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2878.   DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2879.   Add INDIRIZZO,Len(DATO$)
  2880.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2881.   If NUMERO>-1
  2882.    For A=0 To NUMEROE
  2883.     DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2884.     Add INDIRIZZO,Len(DATO$)
  2885.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2886.     DATO$="Nome:"+Chr$(10)
  2887.     Add INDIRIZZO,Len(DATO$)
  2888.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2889.     DATO$=NOMEE$(A)+Chr$(10)
  2890.     Add INDIRIZZO,Len(DATO$)
  2891.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2892.     DATO$="Descrizione:"+Chr$(10)
  2893.     Add INDIRIZZO,Len(DATO$)
  2894.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2895.     DATO$=DESCRIZIONEE$(A)+"|"
  2896.     Add INDIRIZZO,Len(DATO$)
  2897.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2898.     DATO$="Numero delle stanze:"+Chr$(10)
  2899.     Add INDIRIZZO,Len(DATO$)
  2900.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2901.     DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2902.     Add INDIRIZZO,Len(DATO$)
  2903.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2904.     For B=0 To NUMEROS(A)
  2905.      DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2906.      Add INDIRIZZO,Len(DATO$)
  2907.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2908.      DATO$="Nome:"+Chr$(10)
  2909.      Add INDIRIZZO,Len(DATO$)
  2910.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2911.      DATO$=NOMES$(B,A)+Chr$(10)
  2912.      Add INDIRIZZO,Len(DATO$)
  2913.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2914.      DATO$="Luogo a Nord:"+Chr$(10)
  2915.      Add INDIRIZZO,Len(DATO$)
  2916.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2917.      DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2918.      Add INDIRIZZO,Len(DATO$)
  2919.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2920.      DATO$="Luogo a NordEst:"+Chr$(10)
  2921.      Add INDIRIZZO,Len(DATO$)
  2922.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2923.      DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2924.      Add INDIRIZZO,Len(DATO$)
  2925.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2926.      DATO$="Luogo a Est:"+Chr$(10)
  2927.      Add INDIRIZZO,Len(DATO$)
  2928.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2929.      DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2930.      Add INDIRIZZO,Len(DATO$)
  2931.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2932.      DATO$="Luogo a SudEst:"+Chr$(10)
  2933.      Add INDIRIZZO,Len(DATO$)
  2934.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2935.      DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2936.      Add INDIRIZZO,Len(DATO$)
  2937.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2938.      DATO$="Luogo a Sud:"+Chr$(10)
  2939.      Add INDIRIZZO,Len(DATO$)
  2940.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2941.      DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2942.      Add INDIRIZZO,Len(DATO$)
  2943.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2944.      DATO$="Luogo a SudOvest:"+Chr$(10)
  2945.      Add INDIRIZZO,Len(DATO$)
  2946.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2947.      DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2948.      Add INDIRIZZO,Len(DATO$)
  2949.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2950.      DATO$="Luogo a Ovest:"+Chr$(10)
  2951.      Add INDIRIZZO,Len(DATO$)
  2952.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2953.      DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2954.      Add INDIRIZZO,Len(DATO$)
  2955.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2956.      DATO$="Luogo a NordOvest:"+Chr$(10)
  2957.      Add INDIRIZZO,Len(DATO$)
  2958.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2959.      DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2960.      Add INDIRIZZO,Len(DATO$)
  2961.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2962.      DATO$="Luogo Sopra:"+Chr$(10)
  2963.      Add INDIRIZZO,Len(DATO$)
  2964.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2965.      DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2966.      Add INDIRIZZO,Len(DATO$)
  2967.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2968.      DATO$="Luogo Sotto:"+Chr$(10)
  2969.      Add INDIRIZZO,Len(DATO$)
  2970.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2971.      DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2972.      Add INDIRIZZO,Len(DATO$)
  2973.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2974.      DATO$="Soldi:"+Chr$(10)
  2975.      Add INDIRIZZO,Len(DATO$)
  2976.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2977.      DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2978.      Add INDIRIZZO,Len(DATO$)
  2979.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2980.      DATO$="Descrizione:"+Chr$(10)
  2981.      Add INDIRIZZO,Len(DATO$)
  2982.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2983.      DATO$=DESCRIZIONES$(B,A)+"|"
  2984.      Add INDIRIZZO,Len(DATO$)
  2985.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2986.     Next B
  2987.    Next A
  2988.   End If 
  2989.   DATO$="Numero dei luoghi:"+Chr$(10)
  2990.   Add INDIRIZZO,Len(DATO$)
  2991.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2992.   DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2993.   Add INDIRIZZO,Len(DATO$)
  2994.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2995.   For A=0 To NUMEROL
  2996.    DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2997.    Add INDIRIZZO,Len(DATO$)
  2998.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2999.    DATO$="Nome:"+Chr$(10)
  3000.    Add INDIRIZZO,Len(DATO$)
  3001.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3002.    DATO$=NOMEL$(A)+Chr$(10)
  3003.    Add INDIRIZZO,Len(DATO$)
  3004.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3005.    DATO$="Luogo a Nord:"+Chr$(10)
  3006.    Add INDIRIZZO,Len(DATO$)
  3007.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3008.    DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  3009.    Add INDIRIZZO,Len(DATO$)
  3010.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3011.    DATO$="Luogo a NordEst:"+Chr$(10)
  3012.    Add INDIRIZZO,Len(DATO$)
  3013.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3014.    DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  3015.    Add INDIRIZZO,Len(DATO$)
  3016.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3017.    DATO$="Luogo a Est:"+Chr$(10)
  3018.    Add INDIRIZZO,Len(DATO$)
  3019.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3020.    DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  3021.    Add INDIRIZZO,Len(DATO$)
  3022.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3023.    DATO$="Luogo a SudEst:"+Chr$(10)
  3024.    Add INDIRIZZO,Len(DATO$)
  3025.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3026.    DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  3027.    Add INDIRIZZO,Len(DATO$)
  3028.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3029.    DATO$="Luogo a Sud:"+Chr$(10)
  3030.    Add INDIRIZZO,Len(DATO$)
  3031.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3032.    DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  3033.    Add INDIRIZZO,Len(DATO$)
  3034.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3035.    DATO$="Luogo a SudOvest:"+Chr$(10)
  3036.    Add INDIRIZZO,Len(DATO$)
  3037.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3038.    DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  3039.    Add INDIRIZZO,Len(DATO$)
  3040.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3041.    DATO$="Luogo a Ovest:"+Chr$(10)
  3042.    Add INDIRIZZO,Len(DATO$)
  3043.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3044.    DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  3045.    Add INDIRIZZO,Len(DATO$)
  3046.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3047.    DATO$="Luogo a NordOvest:"+Chr$(10)
  3048.    Add INDIRIZZO,Len(DATO$)
  3049.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3050.    DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  3051.    Add INDIRIZZO,Len(DATO$)
  3052.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3053.    DATO$="Luogo Sopra:"+Chr$(10)
  3054.    Add INDIRIZZO,Len(DATO$)
  3055.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3056.    DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  3057.    Add INDIRIZZO,Len(DATO$)
  3058.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3059.    DATO$="Luogo Sotto:"+Chr$(10)
  3060.    Add INDIRIZZO,Len(DATO$)
  3061.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3062.    DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  3063.    Add INDIRIZZO,Len(DATO$)
  3064.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3065.    DATO$="Soldi:"+Chr$(10)
  3066.    Add INDIRIZZO,Len(DATO$)
  3067.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3068.    DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  3069.    Add INDIRIZZO,Len(DATO$)
  3070.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3071.    DATO$="Regione:"+Chr$(10)
  3072.    Add INDIRIZZO,Len(DATO$)
  3073.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3074.    DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  3075.    Add INDIRIZZO,Len(DATO$)
  3076.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3077.    DATO$="Tipo di luogo:"+Chr$(10)
  3078.    Add INDIRIZZO,Len(DATO$)
  3079.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3080.    DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  3081.    Add INDIRIZZO,Len(DATO$)
  3082.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3083.    DATO$="Descrizione:"+Chr$(10)
  3084.    Add INDIRIZZO,Len(DATO$)
  3085.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3086.    DATO$=DESCRIZIONEL$(A)+"|"
  3087.    Add INDIRIZZO,Len(DATO$)
  3088.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3089.   Next A
  3090.   DATO$="Numero degli oggetti:"+Chr$(10)
  3091.   Add INDIRIZZO,Len(DATO$)
  3092.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3093.   DATO$=Str$(NUMEROO)-" "+Chr$(10)
  3094.   Add INDIRIZZO,Len(DATO$)
  3095.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3096.   For A=0 To NUMEROO
  3097.    DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  3098.    Add INDIRIZZO,Len(DATO$)
  3099.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3100.    DATO$="Categoria:"+Chr$(10)
  3101.    Add INDIRIZZO,Len(DATO$)
  3102.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3103.    DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  3104.    Add INDIRIZZO,Len(DATO$)
  3105.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3106.    DATO$="Posizione:"+Chr$(10)
  3107.    Add INDIRIZZO,Len(DATO$)
  3108.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3109.    DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  3110.    Add INDIRIZZO,Len(DATO$)
  3111.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3112.    DATO$="Tipo:"+Chr$(10)
  3113.    Add INDIRIZZO,Len(DATO$)
  3114.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3115.    DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  3116.    Add INDIRIZZO,Len(DATO$)
  3117.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3118.   Next A
  3119.   DATO$="Numero dei personaggi:"+Chr$(10)
  3120.   Add INDIRIZZO,Len(DATO$)
  3121.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3122.   DATO$=Str$(NUMEROP)-" "+Chr$(10)
  3123.   Add INDIRIZZO,Len(DATO$)
  3124.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3125.   For A=0 To NUMEROP
  3126.    DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  3127.    Add INDIRIZZO,Len(DATO$)
  3128.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3129.    DATO$="Nome:"+Chr$(10)
  3130.    Add INDIRIZZO,Len(DATO$)
  3131.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3132.    DATO$=NOMEP$(A)+Chr$(10)
  3133.    Add INDIRIZZO,Len(DATO$)
  3134.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3135.    DATO$="Posizione:"+Chr$(10)
  3136.    Add INDIRIZZO,Len(DATO$)
  3137.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3138.    DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  3139.    Add INDIRIZZO,Len(DATO$)
  3140.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3141.    DATO$="Costituzione:"+Chr$(10)
  3142.    Add INDIRIZZO,Len(DATO$)
  3143.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3144.    DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  3145.    Add INDIRIZZO,Len(DATO$)
  3146.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3147.    DATO$="Destrezza:"+Chr$(10)
  3148.    Add INDIRIZZO,Len(DATO$)
  3149.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3150.    DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  3151.    Add INDIRIZZO,Len(DATO$)
  3152.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3153.    DATO$="Forza:"+Chr$(10)
  3154.    Add INDIRIZZO,Len(DATO$)
  3155.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3156.    DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  3157.    Add INDIRIZZO,Len(DATO$)
  3158.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3159.    DATO$="Peso:"+Chr$(10)
  3160.    Add INDIRIZZO,Len(DATO$)
  3161.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3162.    DATO$=Str$(PESOP(A))-" "+Chr$(10)
  3163.    Add INDIRIZZO,Len(DATO$)
  3164.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3165.    DATO$="Peso netto:"+Chr$(10)
  3166.    Add INDIRIZZO,Len(DATO$)
  3167.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3168.    DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  3169.    Add INDIRIZZO,Len(DATO$)
  3170.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3171.    DATO$="Resistenza:"+Chr$(10)
  3172.    Add INDIRIZZO,Len(DATO$)
  3173.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3174.    DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  3175.    Add INDIRIZZO,Len(DATO$)
  3176.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3177.    DATO$="Soldi:"+Chr$(10)
  3178.    Add INDIRIZZO,Len(DATO$)
  3179.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3180.    DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  3181.    Add INDIRIZZO,Len(DATO$)
  3182.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3183.    DATO$="Tipo:"+Chr$(10)
  3184.    Add INDIRIZZO,Len(DATO$)
  3185.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3186.    DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  3187.    Add INDIRIZZO,Len(DATO$)
  3188.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3189.    DATO$="Descrizione:"+Chr$(10)
  3190.    Add INDIRIZZO,Len(DATO$)
  3191.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3192.    DATO$=DESCRIZIONEP$(A)+"|"
  3193.    Add INDIRIZZO,Len(DATO$)
  3194.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3195.    DATO$="Inizio sonno:"+Chr$(10)
  3196.    Add INDIRIZZO,Len(DATO$)
  3197.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3198.    DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  3199.    Add INDIRIZZO,Len(DATO$)
  3200.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3201.    DATO$="Durata sonno:"+Chr$(10)
  3202.    Add INDIRIZZO,Len(DATO$)
  3203.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3204.    DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  3205.    Add INDIRIZZO,Len(DATO$)
  3206.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3207.    DATO$="Direzione presa:"+Chr$(10)
  3208.    Add INDIRIZZO,Len(DATO$)
  3209.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3210.    DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  3211.    Add INDIRIZZO,Len(DATO$)
  3212.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3213.    DATO$="Luogo di destinazione:"+Chr$(10)
  3214.    Add INDIRIZZO,Len(DATO$)
  3215.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3216.    DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  3217.    Add INDIRIZZO,Len(DATO$)
  3218.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3219.    DATO$="Tempo di attraversamento:"+Chr$(10)
  3220.    Add INDIRIZZO,Len(DATO$)
  3221.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3222.    DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  3223.    Add INDIRIZZO,Len(DATO$)
  3224.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3225.    DATO$="Soldi ricevuti:"+Chr$(10)
  3226.    Add INDIRIZZO,Len(DATO$)
  3227.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3228.    DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  3229.    Add INDIRIZZO,Len(DATO$)
  3230.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3231.    For B=0 To 7
  3232.     DATO$="Azione"+Str$(B)+">"+Chr$(10)
  3233.     Add INDIRIZZO,Len(DATO$)
  3234.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3235.     DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  3236.     Add INDIRIZZO,Len(DATO$)
  3237.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3238.     DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  3239.     Add INDIRIZZO,Len(DATO$)
  3240.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3241.     DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  3242.     Add INDIRIZZO,Len(DATO$)
  3243.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3244.     DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  3245.     Add INDIRIZZO,Len(DATO$)
  3246.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3247.     DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  3248.     Add INDIRIZZO,Len(DATO$)
  3249.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3250.     DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  3251.     Add INDIRIZZO,Len(DATO$)
  3252.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3253.     DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  3254.     Add INDIRIZZO,Len(DATO$)
  3255.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3256.    Next B
  3257.    DATO$="Posizione azione:"+Chr$(10)
  3258.    Add INDIRIZZO,Len(DATO$)
  3259.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3260.    DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  3261.    Add INDIRIZZO,Len(DATO$)
  3262.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3263.   Next A
  3264.   DATO$="Numero delle regioni:"+Chr$(10)
  3265.   Add INDIRIZZO,Len(DATO$)
  3266.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3267.   DATO$=Str$(NUMEROR)-" "+Chr$(10)
  3268.   Add INDIRIZZO,Len(DATO$)
  3269.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3270.   For A=0 To NUMEROR
  3271.    DATO$="Regione"+Str$(A)+">"+Chr$(10)
  3272.    Add INDIRIZZO,Len(DATO$)
  3273.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3274.    DATO$="Nome:"+Chr$(10)
  3275.    Add INDIRIZZO,Len(DATO$)
  3276.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3277.    DATO$=NOMER$(A)+Chr$(10)
  3278.    Add INDIRIZZO,Len(DATO$)
  3279.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3280.   Next A
  3281.   DATO$="Giornata:"+Chr$(10)
  3282.   Add INDIRIZZO,Len(DATO$)
  3283.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3284.   DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  3285.   Add INDIRIZZO,Len(DATO$)
  3286.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3287.   DATO$="Tempo trascorso:"+Chr$(10)
  3288.   Add INDIRIZZO,Len(DATO$)
  3289.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3290.   DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  3291.   Add INDIRIZZO,Len(DATO$)
  3292.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3293.   MEMORIA=Max(Chip Free,Fast Free)
  3294.   If INDIRIZZO>MEMORIA
  3295.    Proc TIC["Mancano"+Str$(INDIRIZZO-1-MEMORIA)+" Byte",ULTIMALINEA]
  3296.    Proc _ASPETTA
  3297.    SENZAMEMORIA=True
  3298.   Else 
  3299.    LUNGHEZZABANCO=INDIRIZZO
  3300.    SENZAMEMORIA=False
  3301.   End If 
  3302.  End If 
  3303. End Proc
  3304. Procedure D0RMI
  3305.  COMPIUTAAZIONE=Rnd(120)+420
  3306.  Bset 2,TIPOP(0)
  3307.  Print At(0,ULTIMALINEA);"Hai deciso di dormire";
  3308.  Proc _ASPETTA
  3309. End Proc
  3310. Procedure EDIFICI
  3311.  If NUMEROE>-1
  3312.   For A=0 To NUMEROE
  3313.    If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3314.     EDIFICIVISIBILI=True
  3315.    End If 
  3316.   Next A
  3317.  Else 
  3318.   EDIFICIVISIBILI=False
  3319.  End If 
  3320.  If EDIFICIVISIBILI=True
  3321.   Print "Edifici visibili>"
  3322.   Proc FONDOSCHERMOGIOCO
  3323.   For A=0 To NUMEROE
  3324.    If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3325.     Print NOMEE$(A)
  3326.    End If 
  3327.    Proc FONDOSCHERMOGIOCO
  3328.   Next A
  3329.  Else 
  3330.   Print "Nessun edificio visibile"
  3331.  End If 
  3332. End Proc
  3333. Procedure EDIFICIOESTANZA
  3334.  E=POSIZIONEP(0)/$10000
  3335.  Print "Edificio>";NOMEE$(E)
  3336.  S=POSIZIONEP(0) mod $10000
  3337.  Print "Stanza>";NOMES$(S,E)
  3338.  Print "Direzioni visibili>";
  3339.  For A=0 To 9
  3340.   DREZIONE=DREZIONES(A,S,E) mod $10000
  3341.   If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  3342.  Next A
  3343.  Print 
  3344. End Proc
  3345. Procedure ESAMINA
  3346.  For A=1 To NUMEROP
  3347.   If PERSONAGGIOVISIBILEP(A)=True Then OGGETTIEPERSONAGGIDAESAMINARE=True
  3348.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3349.    OGGETTIEPERSONAGGIDAESAMINARE=True
  3350.   End If 
  3351.  Next A
  3352.  If TEMP0DIATTRAVERSAMENTOP(0)=0
  3353.   For A=0 To NUMEROO
  3354.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  3355.     OGGETTIEPERSONAGGIDAESAMINARE=True
  3356.    End If 
  3357.   Next A
  3358.  End If 
  3359.  For A=0 To NUMEROO
  3360.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False
  3361.    OGGETTIEPERSONAGGIDAESAMINARE=True
  3362.   End If 
  3363.  Next A
  3364.  If OGGETTIEPERSONAGGIDAESAMINARE=True
  3365.   Cls 
  3366.   Print "Personaggi ed oggetti esaminabili>"
  3367.   For A=1 To NUMEROP
  3368.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  3369.     If RESISTENZAP(A)=0
  3370.      Print "Il cadavere di ",NOMEP$(A)
  3371.     Else 
  3372.      Print NOMEP$(A)
  3373.     End If 
  3374.     Proc FONDOSCHERMOGIOCO
  3375.    End If 
  3376.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3377.     If RESISTENZAP(A)=0
  3378.      Print "Il cadavere di ";NOMEP$(A);" (che stai trasportando)"
  3379.     Else 
  3380.      Print NOMEP$(A);" (che stai trasportando)"
  3381.     End If 
  3382.     Proc FONDOSCHERMOGIOCO
  3383.    End If 
  3384.   Next A
  3385.   For A=0 To NUMEROO
  3386.    If POSIZIONEO(A)=POSIZIONEP(0)
  3387.     If Btst(3,TIPOO(A))=False
  3388.      Print Str$(A+1)-" ";">";
  3389.      If Btst(1,TIPOO(A))=True
  3390.       Print NOMESRO$(CATEGORIAO(A))
  3391.      Else 
  3392.       Print NOMESCO$(CATEGORIAO(A))
  3393.      End If 
  3394.      Proc FONDOSCHERMOGIOCO
  3395.     End If 
  3396.    Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3397.     Print Str$(A+1)-" ";">";
  3398.     If Btst(1,TIPOO(A))=True
  3399.      Print NOMESRO$(CATEGORIAO(A));
  3400.     Else 
  3401.      Print NOMESCO$(CATEGORIAO(A));
  3402.     End If 
  3403.     Print " (che stai trasportando)"
  3404.     Proc FONDOSCHERMOGIOCO
  3405.    End If 
  3406.   Next A
  3407.   Print At(0,ULTIMALINEA-1);"Chi o che cosa vuoi esaminare ?>" : Locate 0,ULTIMALINEA
  3408.   Input "Numero=Oggetto/Nome=Personaggio>";NUMEROOGGETTOONOMEPERSONAGGIO$;
  3409.   Curs Off 
  3410.   If NUMEROOGGETTOONOMEPERSONAGGIO$<>""
  3411.    If Val(NUMEROOGGETTOONOMEPERSONAGGIO$)=0
  3412.     If NUMEROOGGETTOONOMEPERSONAGGIO$="0"
  3413.      Pop Proc
  3414.     End If 
  3415.     For A=1 To NUMEROP
  3416.      If Lower$(NUMEROOGGETTOONOMEPERSONAGGIO$)=Lower$(NOMEP$(A))
  3417.       Exit 
  3418.      End If 
  3419.     Next A
  3420.     If A=NUMEROP+1
  3421.      Print At(0,ULTIMALINEA);"Non c'� nessun ";NUMEROOGGETTOONOMEPERSONAGGIO$;" da esaminare    ";
  3422.      If _MUSICA=False
  3423.       Bell 1
  3424.      End If 
  3425.      Proc _ASPETTA
  3426.     Else 
  3427.      COMPIUTAAZIONE=1
  3428.      Cls 
  3429.      If RESISTENZAP(A)=0
  3430.       Print NOMEP$(A);" era un";
  3431.       If Btst(1,TIPOP(A))=True
  3432.        Print "a femmina"
  3433.       Else 
  3434.        Print " maschio"
  3435.       End If 
  3436.      Else 
  3437.       Print NOMEP$(A);" ï¿½ un";
  3438.       If Btst(1,TIPOP(A))=True
  3439.        Print "a femmina"
  3440.       Else 
  3441.        Print " maschio"
  3442.       End If 
  3443.       If Btst(2,TIPOP(A))=True
  3444.        Print NOMEP$(A);" sta dormendo"
  3445.       End If 
  3446.       For B=0 To NUMEROO
  3447.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3448.         OGGETTIDAMOSTRARE=True
  3449.        End If 
  3450.       Next B
  3451.       If SOLDIP(A)>0
  3452.        OGGETTIDAMOSTRARE=True
  3453.       End If 
  3454.       If OGGETTIDAMOSTRARE=True
  3455.        For B=0 To NUMEROCO
  3456.         OGGETTIDIA(B)=0
  3457.         RESTIDIA(B)=0
  3458.        Next B
  3459.        For B=0 To NUMEROO
  3460.         If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3461.          If Btst(1,TIPOO(B))=True
  3462.           Inc RESTIDIA(CATEGORIAO(B))
  3463.          Else 
  3464.           Inc OGGETTIDIA(CATEGORIAO(B))
  3465.          End If 
  3466.         End If 
  3467.        Next B
  3468.        Print "Inventario oggetti di ";NOMEP$(A);">"
  3469.        For B=0 To NUMEROCO
  3470.         If OGGETTIDIA(B)>0
  3471.          Print Str$(OGGETTIDIA(B))-" ";" ";
  3472.          If OGGETTIDIA(B)=1
  3473.           Print NOMESCO$(B)
  3474.          Else 
  3475.           Print NOMEPCO$(B)
  3476.          End If 
  3477.         End If 
  3478.         If RESTIDIA(B)>0
  3479.          Print Str$(RESTIDIA(B))-" ";" ";
  3480.          If RESTIDIA(B)=1
  3481.           Print NOMESRO$(B)
  3482.          Else 
  3483.           Print NOMEPRO$(B)
  3484.          End If 
  3485.         End If 
  3486.        Next B
  3487.        If SOLDIP(B)>0
  3488.         Print Str$(SOLDIP(B))-" ";" ";
  3489.         If SOLDIP(B)=1
  3490.          Print "soldo"
  3491.         Else 
  3492.          Print "soldi"
  3493.         End If 
  3494.         Proc FONDOSCHERMOGIOCO
  3495.        End If 
  3496.        For B=0 To NUMEROO
  3497.         If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True
  3498.          If Btst(2,TIPOCO(CATEGORIAO(B)))=True and Btst(2,TIPOO(B))=True
  3499.           Print NOMEP$(A);" indossa 1 ";NOMESCO$(CATEGORIAO(B))
  3500.           Exit 
  3501.          End If 
  3502.         End If 
  3503.        Next B
  3504.       Else 
  3505.        Print NOMEP$(A);" non ha nessun oggetto"
  3506.       End If 
  3507.      End If 
  3508.      Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3509.     End If 
  3510.    Else 
  3511.     OGGETTODAESAMINARE=Val(NUMEROOGGETTOONOMEPERSONAGGIO$)
  3512.     For A=0 To NUMEROO
  3513.      If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3514.       Exit 
  3515.      End If 
  3516.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3517.       Exit 
  3518.      End If 
  3519.     Next A
  3520.     If A=NUMEROO+1
  3521.      Print At(0,ULTIMALINEA);"Non c'� nessun oggetto col numero";OGGETTODAESAMINARE;
  3522.      If _MUSICA=False
  3523.       Bell 1
  3524.      End If 
  3525.      Proc _ASPETTA
  3526.     Else 
  3527.      COMPIUTAAZIONE=1
  3528.      Cls 
  3529.      Print "Oggetto numero";OGGETTODAESAMINARE;">";
  3530.      If Btst(1,TIPOO(A))=True
  3531.       Print NOMESRO$(CATEGORIAO(A))
  3532.      Else 
  3533.       Print NOMESCO$(CATEGORIAO(A))
  3534.      End If 
  3535.      If Btst(0,TIPOCO(CATEGORIAO(A)))=True
  3536.       Print "� commestibile"
  3537.      End If 
  3538.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  3539.       Print "� un contenitore"
  3540.      End If 
  3541.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  3542.       Print "� difensivo"
  3543.      End If 
  3544.      If Btst(3,TIPOCO(CATEGORIAO(A)))=True
  3545.       Print "� leggibile"
  3546.      End If 
  3547.      If Btst(4,TIPOCO(CATEGORIAO(A)))=True
  3548.       Print "� liquido"
  3549.      Else 
  3550.       Print "� solido"
  3551.      End If 
  3552.      If Btst(5,TIPOCO(CATEGORIAO(A)))=True
  3553.       Print "� magico"
  3554.      End If 
  3555.      If Btst(6,TIPOCO(CATEGORIAO(A)))=True
  3556.       Print "� offensivo"
  3557.      End If 
  3558.      If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  3559.       Print "� residente"
  3560.      End If 
  3561.      If Btst(8,TIPOCO(CATEGORIAO(A)))=True
  3562.       Print "� trasferibile"
  3563.      End If 
  3564.      If Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3565.       Print "� trasparente"
  3566.      End If 
  3567.      If Btst(10,TIPOCO(CATEGORIAO(A)))=True
  3568.       Print "� vincolato"
  3569.      End If 
  3570.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True and Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3571.       For B=0 To NUMEROCO
  3572.        OGGETTIDIA(B)=0
  3573.        RESTIDIA(B)=0
  3574.       Next B
  3575.       For B=0 To NUMEROO
  3576.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and Btst(3,TIPOO(B))=False
  3577.         OGGETTICONTENUTI=True
  3578.         If Btst(1,TIPOO(B))=True
  3579.          Inc RESTIDIA(CATEGORIAO(A))
  3580.         Else 
  3581.          Inc OGGETTIDIA(CATEGORIAO(A))
  3582.         End If 
  3583.        End If 
  3584.       Next B
  3585.       For B=1 To NUMEROP
  3586.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3587.         PERSONAGGICONTENUTI=True
  3588.        End If 
  3589.       Next B
  3590.       If OGGETTICONTENUTI=True
  3591.        Print "oggetti contenuti>"
  3592.        Proc FONDOSCHERMOGIOCO
  3593.        For B=0 To NUMEROCO
  3594.         If OGGETTIDIA(B)>0
  3595.          Print Str$(OGGETTIDIA(B))-" ";" ";
  3596.          If OGGETTIDIA(B)=1
  3597.           Print NOMESCO$(B)
  3598.          Else 
  3599.           Print NOMEPCO$(B)
  3600.          End If 
  3601.          Proc FONDOSCHERMOGIOCO
  3602.         End If 
  3603.         If RESTIDIA(B)>0
  3604.          Print Str$(RESTIDIA(B))-" ";" ";
  3605.          If RESTIDIA(B)=1
  3606.           Print NOMESRO$(B)
  3607.          Else 
  3608.           Print NOMEPRO$(B)
  3609.          End If 
  3610.          Proc FONDOSCHERMOGIOCO
  3611.         End If 
  3612.        Next B
  3613.       Else 
  3614.        Print "non contiene nessun oggetto"
  3615.       End If 
  3616.       If PERSONAGGICONTENUTI=True
  3617.        Print "personaggi contenuti>"
  3618.        Proc FONDOSCHERMOGIOCO
  3619.        For B=1 To NUMEROP
  3620.         If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3621.          Print NOMEP$(B)
  3622.          Proc FONDOSCHERMOGIOCO
  3623.         End If 
  3624.        Next B
  3625.       Else 
  3626.        Print "non contiene nessun personaggio"
  3627.       End If 
  3628.      End If 
  3629.      Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3630.     End If 
  3631.    End If 
  3632.   End If 
  3633.  Else 
  3634.   Print At(0,ULTIMALINEA);"Non ci sono oggetti e personaggi da esaminare";
  3635.   If _MUSICA=False
  3636.    Bell 1
  3637.   End If 
  3638.   Proc _ASPETTA
  3639.  End If 
  3640. End Proc
  3641. Procedure FAIDORMIREGLIALTRIPERSONAGGI[P]
  3642.  M1NUTI=(TEMP0TRASCORSO+360) mod 1440-COMPIUTAAZIONE
  3643.  If INIZIOSONNOP(P)=M1NUTI
  3644.   If PERSONAGGIOVISIBILEP(P)=True
  3645.    If Btst(2,TIPOP(P))=False
  3646.     Print NOMEP$(P);" si ï¿½ addormentat";
  3647.     If Btst(1,TIPOP(P))=True
  3648.      Print "a"
  3649.     Else 
  3650.      Print "o"
  3651.     End If 
  3652.    End If 
  3653.   End If 
  3654.   SONNOP(P)=Rnd(120)+420
  3655.   Bset 2,TIPOP(P)
  3656.  End If 
  3657. End Proc
  3658. Procedure FASEDELGIORNO
  3659.  Print "Fase del giorno>";
  3660.  M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  3661.  If M1NUTI<360
  3662.   Print FASEG$(6)
  3663.  Else If M1NUTI>359 and M1NUTI<420
  3664.   Print FASEG$(0)
  3665.  Else If M1NUTI>419 and M1NUTI<540
  3666.   Print FASEG$(1)
  3667.  Else If M1NUTI>539 and M1NUTI<780
  3668.   Print FASEG$(2)
  3669.  Else If M1NUTI>779 and M1NUTI<1080
  3670.   Print FASEG$(3)
  3671.  Else If M1NUTI>1079 and M1NUTI<1140
  3672.   Print FASEG$(4)
  3673.  Else If M1NUTI>1139 and M1NUTI<1260
  3674.   Print FASEG$(5)
  3675.  Else 
  3676.   Print FASEG$(6)
  3677.  End If 
  3678. End Proc
  3679. Procedure FONDOSCHERMOEDITOR
  3680.  If MESSAGGIO1$<>""
  3681.   If Y Curs=ULTIMALINEA-1
  3682.    Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  3683.    Proc TIC["premi un tasto",ULTIMALINEA]
  3684.    Wait Key 
  3685.    Cls 
  3686.   End If 
  3687.  Else 
  3688.   If Y Curs=ULTIMALINEA
  3689.    Proc TIC["premi un tasto",ULTIMALINEA]
  3690.    Wait Key 
  3691.    Cls 
  3692.   End If 
  3693.  End If 
  3694. End Proc
  3695. Procedure FONDOSCHERMOGIOCO
  3696.  If Y Curs=ULTIMALINEA
  3697.   Proc TIC["premi un tasto",ULTIMALINEA]
  3698.   Wait Key 
  3699.   Cls 
  3700.  End If 
  3701. End Proc
  3702. Procedure GIOCA
  3703.  Fade 5,$66
  3704.  Proc MOSTRAMESSAGGIO["Prologo",PROLOGO$]
  3705.  Repeat 
  3706.   Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3707.   If FINEA(7,0)=True
  3708.    Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3709.    Exit 
  3710.   End If 
  3711.   If COMPIUTAAZIONE>0
  3712.    Add TEMP0TRASCORSO,COMPIUTAAZIONE
  3713.   End If 
  3714.   PERSONAGGIO0SITROVADENTROUNEDIFICIO=POSIZIONEP(0)/$10000
  3715.   If ANEMICI=True and PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3716.    AZIONI=COMPIUTAAZIONE
  3717.    While AZIONI>0
  3718.     NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  3719.     NEMICI=Max(NEMICI,0)
  3720.     If NEMICI=0
  3721.      If Btst(2,TIPOP(0))=True
  3722.       Bclr 2,TIPOP(0) : Add COMPIUTAAZIONE,-AZIONI : AZIONI=1 : INEMICITISVEGLIANO=True
  3723.       Proc NEMICI[0]
  3724.      Else 
  3725.       Proc NEMICI[0]
  3726.      End If 
  3727.     End If 
  3728.     Dec AZIONI
  3729.    Wend 
  3730.   End If 
  3731.   Cls 
  3732.   If RESISTENZAP(0)=0 Then Proc MORTE[0] : Exit 
  3733.   Proc TIC["Premi * per le informazioni",0] : Print 
  3734.   Print "Nome del personaggio>";NOMEP$(0)
  3735.   Proc TEMP0
  3736.   If PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3737.    Proc FASEDELGIORNO
  3738.    Proc CONDIZIONEDELGIORNO
  3739.    If TEMP0DIATTRAVERSAMENTOP(0)=0
  3740.     Proc LUOGO
  3741.     Proc TIPODILUOGO
  3742.     Proc EDIFICI
  3743.     Proc PERSONAGGI
  3744.     Proc OGGETTI[True]
  3745.     Print String$("*",80);
  3746.     Proc AZIONIALTRIPERSONAGGI
  3747.     Proc OGGETTI[False]
  3748.     Bclr 2,TIPOP(0)
  3749.     Memorize X : Memorize Y 
  3750.     Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3751.     SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3752.     If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3753.     If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3754.     If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3755.     If SCELTA$="d" : Proc DAI : End If 
  3756.     If SCELTA$="e" : Proc ESAMINA : End If 
  3757.     If SCELTA$="g" : Proc GUARDA : End If 
  3758.     If SCELTA$="i" : Proc INVENTARIO : End If 
  3759.     If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3760.     If SCELTA$="l" : Proc LASCIA : End If 
  3761.     If SCELTA$="m" : Proc MUOVITI : End If 
  3762.     If SCELTA$="p" : Proc PRENDI : End If 
  3763.     If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3764.     If SCELTA$="u" : Proc USA : End If 
  3765.     If SCELTA$="z" : Proc D0RMI : End If 
  3766.    Else 
  3767.     Print NOMEP$(0);" sta andando ";
  3768.     If DREZIONEPRESAP(0)>7
  3769.      Print Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3770.     Else 
  3771.      Print "a ";Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3772.     End If 
  3773.     Print " da ";NOMEL$(POSIZIONEP(0))
  3774.     Proc TIPODILUOGO
  3775.     Proc TIPODILUOGODIDESTINAZIONE
  3776.     If TEMP0DIATTRAVERSAMENTOP(0)=1
  3777.      Print "Gli resta 1 minuto";
  3778.     Else 
  3779.      Print "Gli restano";TEMP0DIATTRAVERSAMENTOP(0);" minuti";
  3780.     End If 
  3781.     Print " di cammino..."
  3782.     Proc PERSONAGGI
  3783.     Print String$("*",80);
  3784.     Proc AZIONIALTRIPERSONAGGI
  3785.     Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3786.     SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3787.     If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3788.     If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3789.     If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3790.     If SCELTA$="d" : Proc DAI : End If 
  3791.     If SCELTA$="i" : Proc INVENTARIO : End If 
  3792.     If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3793.     If SCELTA$="l" : Proc LASCIA : End If 
  3794.     If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3795.     If SCELTA$="p" : Proc PRENDI : End If 
  3796.     If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3797.     If SCELTA$="z" : Proc D0RMI : End If 
  3798.    End If 
  3799.   Else 
  3800.    Proc EDIFICIOESTANZA
  3801.    Proc PERSONAGGI
  3802.    Print String$("*",80);
  3803.    Proc AZIONIALTRIPERSONAGGI
  3804.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3805.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3806.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3807.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3808.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3809.    If SCELTA$="d" : Proc DAI : End If 
  3810.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3811.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3812.    If SCELTA$="l" : Proc LASCIA : End If 
  3813.    If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3814.    If SCELTA$="p" : Proc PRENDI : End If 
  3815.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3816.    If SCELTA$="z" : Proc D0RMI : End If 
  3817.   End If 
  3818.   Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3819.   If FINEA(7,0)=True
  3820.    Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3821.    Exit 
  3822.   End If 
  3823.  Until SCELTA$="x"
  3824.  Fade 5,$60
  3825. End Proc
  3826. Procedure GUARDA
  3827.  For A=0 To NUMEROCO
  3828.   If OGGETTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,OGGETTINELLUOGO(A)
  3829.   If RESTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,RESTINELLUOGO(A)
  3830.   If OGGETTODELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,OGGETTODELPERSONAGGIO0(A)
  3831.   If RESTODELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,RESTODELPERSONAGGIO0(A)
  3832.  Next A
  3833.  If NUMEROE>-1
  3834.   For A=0 To NUMEROE
  3835.    If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3836.     Inc EDIFICIVISIBILI
  3837.    End If 
  3838.   Next A
  3839.  Else 
  3840.   EDIFICIVISIBILI=0
  3841.  End If 
  3842.  PERSONAGGIVISIBILI=1
  3843.  For A=1 To NUMEROP
  3844.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  3845.  Next A
  3846.  E=POSIZIONEP(0)/$10000
  3847.  If E>0
  3848.   If OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3849.    Print At(0,ULTIMALINEA);"Vuoi guardare un oggetto, un personaggio o la stanza (o/p/s) ?>";
  3850.    OGGETTOPERSONAGGIOOSTANZA$=Input$(1)
  3851.    OGGETTOPERSONAGGIOOSTANZA$=Lower$(OGGETTOPERSONAGGIOOSTANZA$)
  3852.    If OGGETTOPERSONAGGIOOSTANZA$="o"
  3853.     Proc GUARDAUNOGGETTO
  3854.    Else If OGGETTOPERSONAGGIOOSTANZA$="p"
  3855.     Proc GUARDAUNPERSONAGGIO
  3856.    Else If OGGETTOPERSONAGGIOOSTANZA$="s"
  3857.     Proc GUARDALASTANZA
  3858.    End If 
  3859.   Else If OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3860.    Print At(0,ULTIMALINEA);"Vuoi guardare un personaggio o la stanza (p/s) ?>";
  3861.    PERSONAGGIOOSTANZA$=Input$(1)
  3862.    PERSONAGGIOOSTANZA$=Lower$(PERSONAGGIOOSTANZA$)
  3863.    If PERSONAGGIOOSTANZA$="p"
  3864.     Proc GUARDAUNPERSONAGGIO
  3865.    Else If PERSONAGGIOOSTANZA$="s"
  3866.     Proc GUARDALASTANZA
  3867.    End If 
  3868.   End If 
  3869.  Else 
  3870.   If EDIFICIVISIBILI>0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3871.    Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo, un oggetto od un personaggio (e/l/o/p) ?>";
  3872.    EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3873.    EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOGGETTOOPERSONAGGIO$)
  3874.    If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3875.     Proc GUARDALEDIFICIO
  3876.    Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="l"
  3877.     Proc GUARDAILLUOGO
  3878.    Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="o"
  3879.     Proc GUARDAUNOGGETTO
  3880.    Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="p"
  3881.     Proc GUARDAUNPERSONAGGIO
  3882.    End If 
  3883.   Else If EDIFICIVISIBILI>0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3884.    Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo od un personaggio (e/l/p) ?>";
  3885.    EDIFICIOLUOGOOPERSONAGGIO$=Input$(1)
  3886.    EDIFICIOLUOGOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOOPERSONAGGIO$)
  3887.    If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3888.     Proc GUARDALEDIFICIO
  3889.    Else If EDIFICIOLUOGOOOPERSONAGGIO$="l"
  3890.     Proc GUARDAILLUOGO
  3891.    Else If EDIFICIOLUOGOOPERSONAGGIO$="p"
  3892.     Proc GUARDAUNPERSONAGGIO
  3893.    End If 
  3894.   Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3895.    Print At(0,ULTIMALINEA);"Vuoi guardare il luogo, un oggetto od un personaggio (l/o/p) ?>";
  3896.    LUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3897.    LUOGOOGGETTOOPERSONAGGIO$=Lower$(LUOGOOGGETTOOPERSONAGGIO$)
  3898.    If LUOGOOGGETTOOPERSONAGGIO$="l"
  3899.     Proc GUARDAILLUOGO
  3900.    Else If LUOGOOGGETTOOPERSONAGGIO$="o"
  3901.     Proc GUARDAUNOGGETTO
  3902.    Else If LUOGOOGGETTOOPERSONAGGIO$="p"
  3903.     Proc GUARDAUNPERSONAGGIO
  3904.    End If 
  3905.   Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3906.    Print At(0,ULTIMALINEA);"Vuoi guardare il luogo od un personaggio (l/p) ?>";
  3907.    LUOGOOPERSONAGGIO$=Input$(1)
  3908.    LUOGOOPERSONAGGIO$=Lower$(LUOGOOPERSONAGGIO$)
  3909.    If LUOGOOPERSONAGGIO$="l"
  3910.     Proc GUARDAILLUOGO
  3911.    Else If LUOGOOPERSONAGGIO$="p"
  3912.     Proc GUARDAUNPERSONAGGIO
  3913.    End If 
  3914.   End If 
  3915.  End If 
  3916. End Proc
  3917. Procedure GUARDAILLUOGO
  3918.  LUOGO$=NOMEL$(POSIZIONEP(0))
  3919.  DESCRIZIONE$=DESCRIZIONEL$(POSIZIONEP(0))
  3920.  COMPIUTAAZIONE=1
  3921.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il luogo ";LUOGO$;
  3922.  Proc _ASPETTA
  3923.  Proc MOSTRAMESSAGGIO["Descrizione del luogo "+LUOGO$,DESCRIZIONE$]
  3924. End Proc
  3925. Procedure GUARDALASTANZA
  3926.  E=POSIZIONEP(0)/$10000 : S=POSIZIONEP(0) mod $10000
  3927.  STANZA$=NOMES$(S,E)
  3928.  DESCRIZIONE$=DESCRIZIONES$(S,E)
  3929.  COMPIUTAAZIONE=1
  3930.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare la stanza ";STANZA$;
  3931.  Proc _ASPETTA
  3932.  Proc MOSTRAMESSAGGIO["Descrizione della stanza "+STANZA$,DESCRIZIONE$]
  3933. End Proc
  3934. Procedure GUARDALEDIFICIO
  3935.  For A=0 To NUMEROE
  3936.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3937.    Inc EDIFICIVISIBILI : E=A
  3938.   End If 
  3939.  Next A
  3940.  If EDIFICIVISIBILI>1
  3941.   Locate 0,ULTIMALINEA : Input "Quale edificio vuoi guardare ?>";EDIFICIO$;
  3942.   Curs Off 
  3943.   If EDIFICIO$<>""
  3944.    For A=1 To NUMEROE
  3945.     If Lower$(EDIFICIO$)=Lower$(NOMEE$(A)) and POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3946.      EDIFICIO$=NOMEE$(A)
  3947.      DESCRIZIONE$=DESCRIZIONEE$(A)
  3948.      COMPIUTAAZIONE=1
  3949.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$;
  3950.      Proc _ASPETTA
  3951.      Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3952.      Exit 
  3953.     End If 
  3954.    Next A
  3955.    If A=NUMEROP+1
  3956.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";EDIFICIO$;
  3957.     If _MUSICA=False
  3958.      Bell 1
  3959.     End If 
  3960.     Proc _ASPETTA
  3961.    End If 
  3962.   End If 
  3963.  Else 
  3964.   EDIFICIO$=NOMEE$(E)
  3965.   DESCRIZIONE$=DESCRIZIONEE$(E)
  3966.   COMPIUTAAZIONE=1
  3967.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$
  3968.   Proc _ASPETTA
  3969.   Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3970.  End If 
  3971. End Proc
  3972. Procedure GUARDAUNOGGETTO
  3973.  For A=0 To NUMEROO
  3974.   If POSIZIONEO(A)=POSIZIONEP(0)
  3975.    Inc OGGETTIVISIBILI : O=A
  3976.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3977.    Inc OGGETTIVISIBILI : O=A
  3978.   End If 
  3979.  Next A
  3980.  If OGGETTIVISIBILI>1
  3981.   Cls 
  3982.   For A=0 To NUMEROO
  3983.    If POSIZIONEO(A)=POSIZIONEP(0)
  3984.     If Btst(3,TIPOO(A))=False
  3985.      Print Str$(A+1)-" ";">";
  3986.      If Btst(1,TIPOO(A))=True
  3987.       Print NOMESRO$(CATEGORIAO(A))
  3988.      Else 
  3989.       Print NOMESCO$(CATEGORIAO(A))
  3990.      End If 
  3991.      Proc FONDOSCHERMOGIOCO
  3992.     End If 
  3993.    Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3994.     Print Str$(A+1)-" ";">";
  3995.     If Btst(1,TIPOO(A))=True
  3996.      Print NOMESRO$(CATEGORIAO(A));
  3997.     Else 
  3998.      Print NOMESCO$(CATEGORIAO(A));
  3999.     End If 
  4000.     Print " (che stai trasportando)"
  4001.     Proc FONDOSCHERMOGIOCO
  4002.    End If 
  4003.   Next A
  4004.   Locate 0,ULTIMALINEA
  4005.   Input "Digita il numero dell'oggetto che vuoi guardare>";NUMEROOGGETTO$;
  4006.   Curs Off 
  4007.   If NUMEROOGGETTO$<>""
  4008.    NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  4009.    For A=0 To NUMEROO
  4010.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4011.      Exit 
  4012.     Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4013.      Exit 
  4014.     End If 
  4015.    Next A
  4016.    If A=NUMEROO+1
  4017.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun oggetto col numero";NUMEROOGGETTO;
  4018.     If _MUSICA=False
  4019.      Bell 1
  4020.     End If 
  4021.     Proc _ASPETTA
  4022.    Else 
  4023.     OGGETTO$=NOMESCO$(CATEGORIAO(A))
  4024.     DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(A))
  4025.     COMPIUTAAZIONE=1
  4026.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4027.     Proc _ASPETTA
  4028.     Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4029.    End If 
  4030.   End If 
  4031.  Else 
  4032.   OGGETTO$=NOMESCO$(CATEGORIAO(O))
  4033.   DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(O))
  4034.   COMPIUTAAZIONE=1
  4035.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4036.   Proc _ASPETTA
  4037.   Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4038.  End If 
  4039. End Proc
  4040. Procedure GUARDAUNPERSONAGGIO
  4041.  PERSONAGGIOVISIBILE=1
  4042.  For A=0 To NUMEROP
  4043.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  4044.  Next A
  4045.  If PERSONAGGIVISIBILI>1
  4046.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi guardare ?>";PERSONAGGIO$;
  4047.   Curs Off 
  4048.   If PERSONAGGIO$<>""
  4049.    PERSONAGGIO$=Lower$(PERSONAGGIO$)
  4050.    If PERSONAGGIO$="me"
  4051.     PERSONAGGIO$=NOMEP$(0)
  4052.     DESCRIZIONE$=DESCRIZIONEP$(0)
  4053.     COMPIUTAAZIONE=1
  4054.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4055.     Proc _ASPETTA
  4056.     Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4057.    Else 
  4058.     For A=1 To NUMEROP
  4059.      If PERSONAGGIO$=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4060.       PERSONAGGIO$=NOMEP$(A)
  4061.       DESCRIZIONE$=DESCRIZIONEP$(A)
  4062.       COMPIUTAAZIONE=1
  4063.       Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il personaggio ";PERSONAGGIO$;
  4064.       Proc _ASPETTA
  4065.       Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4066.       Exit 
  4067.      End If 
  4068.     Next A
  4069.     If A=NUMEROP+1
  4070.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4071.      If _MUSICA=False
  4072.       Bell 1
  4073.      End If 
  4074.      Proc _ASPETTA
  4075.     End If 
  4076.    End If 
  4077.   End If 
  4078.  Else 
  4079.   PERSONAGGIO$=NOMEP$(0)
  4080.   DESCRIZIONE$=DESCRIZIONEP$(0)
  4081.   COMPIUTAAZIONE=1
  4082.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4083.   Proc _ASPETTA
  4084.   Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4085.  End If 
  4086. End Proc
  4087. Procedure INFORMAZIONI
  4088.  Cls 
  4089.  TIC["Comandi utilizzabili:",0] : Print 
  4090.  If TEMP0DIATTRAVERSAMENTOP(0)=0
  4091.   Print "Premi A aspettare cinque minuti di gioco"
  4092.   Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4093.   Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4094.   Print "Premi E per esaminare un oggetto od un personaggio"
  4095.   Print "Premi G per guardare un'edificio, un luogo, un oggetto od un personaggio"
  4096.   Print "Premi I per vedere l'inventario del tuo personaggio"
  4097.   Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4098.   Print "Premi L per lasciare un oggetto, un personaggio o dei soldi"
  4099.   Print "Premi M per muoverti"
  4100.   Print "Premi P per prendere un oggetto, un personaggio o dei soldi"
  4101.   Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4102.   Print "Premi U per usare un oggetto su un altro oggetto o su un personaggio"
  4103.   Print "Premi X per smettere di giocare"
  4104.   Print "Premi Z per dormire"
  4105.  Else 
  4106.   Print "Premi A per aspettare cinque minuti di gioco"
  4107.   Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4108.   Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4109.   Print "Premi I per vedere l'inventario del tuo personaggio"
  4110.   Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4111.   Print "Premi M per muoverti"
  4112.   Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4113.   Print "Premi X per smettere di giocare"
  4114.   Print "Premi Z per dormire"
  4115.  End If 
  4116.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4117. End Proc
  4118. Procedure INIZIALIZZALEVARIABILI
  4119.  MESSAGGIO1$=""
  4120.  For A=0 To NUMMASCO
  4121.   NOMESCO$(A)="Oggetto"+Str$(A)
  4122.   NOMEPCO$(A)="Oggetti"+Str$(A)
  4123.   NOMESRO$(A)="Resto oggetto"+Str$(A)
  4124.   NOMEPRO$(A)="Resti oggetti"+Str$(A)
  4125.   PESOCO(A)=5
  4126.   PESORESTOCO(A)=1
  4127.   DESCRIZIONECO$(A)="Descrizione della categoria"+Str$(A)+" degli oggetti"
  4128.  Next A
  4129.  For A=0 To NUMMASE
  4130.   NOMEE$(A)="Edificio"+Str$(A)
  4131.   DESCRIZIONEE$(A)="Descrizione dell'edificio"+Str$(A)
  4132.   For B=0 To NUMMASS
  4133.    NOMES$(B,A)="Stanza"+Str$(B)
  4134.    DESCRIZIONES$(B,A)="Descrizione della stanza"+Str$(A)
  4135.   Next B
  4136.  Next A
  4137.  For A=0 To NUMMASL
  4138.   NOMEL$(A)="Luogo"+Str$(A)
  4139.   DESCRIZIONEL$(A)="Descrizione del luogo"+Str$(A)
  4140.  Next A
  4141.  For A=0 To NUMMASP
  4142.   NOMEP$(A)="Personaggio"+Str$(A)
  4143.   C0STITUZIONEP(A)=1
  4144.   DESTREZZAP(A)=1
  4145.   F0RZAP(A)=1
  4146.   PESOP(A)=1
  4147.   RESISTENZAP(A)=1
  4148.   DESCRIZIONEP$(A)="Descrizione del personaggio"+Str$(A)
  4149.  Next A
  4150.  For A=0 To NUMMASR
  4151.   NOMER$(A)="Regione"+Str$(A)
  4152.  Next A
  4153. End Proc
  4154. Procedure INSERISCIPARAMETRIAZIONE[AZIONE,A,P]
  4155.  Cls 
  4156.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4157.  Locate 0,ULTIMALINEA
  4158.  If AZIONE=1
  4159.   Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4160.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4161.  Else If AZIONE=2
  4162.   Input "Quanti oggetti vuole dare ai personaggi?>";PARA;
  4163.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4164.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4165.   PARABAZIONEP(A,P)=Param
  4166.  Else If AZIONE=3
  4167.   Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4168.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4169.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4170.   PARABAZIONEP(AZIONE,P)=Param
  4171.  Else If AZIONE=4
  4172.   Input "Quanti personaggi vuole dare ai personaggi (1-65535) ?>";PARA;
  4173.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4174.  Else If AZIONE=5
  4175.   Repeat 
  4176.    Input "Quale personaggio vuole dare ai personaggi (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4177.    Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4178.    Locate 0,ULTIMALINEA
  4179.   Until PARA<>P
  4180.  Else If AZIONE=6
  4181.   Repeat 
  4182.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4183.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4184.    Locate 0,ULTIMALINEA : Cline 
  4185.   Until PARA<>P
  4186.   Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4187.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4188.  Else If AZIONE=7
  4189.   Repeat 
  4190.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4191.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4192.    Locate 0,ULTIMALINEA
  4193.   Until PARA<>P
  4194.   Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4195.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4196.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4197.   PARACAZIONEP(A,P)=Param
  4198.  Else If AZIONE=8
  4199.   Repeat 
  4200.    Locate 0,ULTIMALINEA
  4201.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4202.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4203.    Locate 0,ULTIMALINEA : Cline 
  4204.   Until PARA<>P
  4205.   Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4206.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4207.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4208.   PARACAZIONEP(A,P)=Param
  4209.  Else If AZIONE=9
  4210.   Repeat 
  4211.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4212.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4213.    Locate 0,ULTIMALINEA : Cline 
  4214.   Until PARA<>P
  4215.   Input "Quanti personaggi vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4216.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4217.  Else If AZIONE=10
  4218.   Repeat 
  4219.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4220.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=PARA
  4221.    Locate 0,ULTIMALINEA : Cline 
  4222.   Until PARA<>P
  4223.   Repeat 
  4224.    Input "Quale personaggio vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4225.    Proc LIMITI[PARB,0,NUMEROP] : PARABAZIONEP(A,P)=Param
  4226.    Locate 0,ULTIMALINEA : Cline 
  4227.   Until PARB<>PARA
  4228.  Else If AZIONE=11
  4229.   Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4230.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4231.  Else If AZIONE=12
  4232.   Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4233.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4234.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4235.   PARABAZIONEP(A,P)=Param
  4236.  Else If AZIONE=13
  4237.   Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4238.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4239.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4240.   PARABAZIONEP(A,P)=Param
  4241.  Else If AZIONE=14
  4242.   Input "Quanti personaggi vuole lasciare (1-65535) ?>";PARA;
  4243.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4244.  Else If AZIONE=15
  4245.   Repeat 
  4246.    Input "Quale personaggio vuole lasciare (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4247.    Proc LIMITI[PARA,1,65535] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4248.    Locate 0,ULTIMALINEA : Cline 
  4249.   Until PARA<>P
  4250.  Else If AZIONE=17
  4251.   Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4252.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4253.  Else If AZIONE=18
  4254.   Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4255.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4256.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4257.   PARABAZIONEP(A,P)=Param
  4258.  Else If AZIONE=19
  4259.   Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4260.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4261.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4262.   PARABAZIONEP(A,P)=Param
  4263.  Else If AZIONE=20
  4264.   Input "Quanti personaggi vuole prendere (1-65535) ?>";PARA;
  4265.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4266.  Else If AZIONE=21
  4267.   Repeat 
  4268.    Input "Quale personaggio vuole prendere (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4269.    Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4270.    Locate 0,ULTIMALINEA : Cline 
  4271.   Until PARA<>P
  4272.  Else If AZIONE=23
  4273.   Repeat 
  4274.    Input "Quale personaggio vuole seguire (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4275.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4276.    Locate 0,ULTIMALINEA : Cline 
  4277.   Until PARA<>P
  4278.  Else If AZIONE=24
  4279.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4280.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4281.  Else If AZIONE=25
  4282.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4283.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4284.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4285.   PARABAZIONEP(A,P)=Param
  4286.  Else If AZIONE=26
  4287.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4288.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4289.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4290.   PARABAZIONEP(A,P)=Param
  4291.  Else If AZIONE=27
  4292.   Input "Su quanti personaggi vuole usare (1-65535) ?>";PARA;
  4293.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4294.  Else If AZIONE=28
  4295.   Repeat 
  4296.    Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4297.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4298.    Locate 0,ULTIMALINEA : Cline 
  4299.   Until PARA<>P
  4300.  Else If AZIONE=29
  4301.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4302.   PARAAAZIONEP(A,P)=Param
  4303.   Locate 0,ULTIMALINEA : Cline 
  4304.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4305.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4306.  Else If AZIONE=30
  4307.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4308.   PARAAAZIONEP(A,P)=Param
  4309.   Locate 0,ULTIMALINEA : Cline 
  4310.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4311.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4312.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4313.   PARACAZIONEP(A,P)=Param
  4314.  Else If AZIONE=31
  4315.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4316.   PARAAAZIONEP(A,P)=Param
  4317.   Locate 0,ULTIMALINEA : Cline 
  4318.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4319.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4320.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4321.   PARACAZIONEP(A,P)=Param
  4322.  Else If AZIONE=32
  4323.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4324.   PARAAAZIONEP(A,P)=Param
  4325.   Locate 0,ULTIMALINEA : Cline 
  4326.   Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4327.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4328.  Else If AZIONE=33
  4329.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4330.   PARAAAZIONEP(A,P)=Param
  4331.   Locate 0,ULTIMALINEA : Cline 
  4332.   Repeat 
  4333.    Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4334.    Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4335.    Locate 0,ULTIMALINEA : Cline 
  4336.   Until PARB<>P
  4337.  Else If AZIONE=34
  4338.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4339.   PARAAAZIONEP(A,P)=Param
  4340.   Cls 
  4341.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4342.   Locate 0,ULTIMALINEA : Cline 
  4343.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4344.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4345.  Else If AZIONE=35
  4346.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4347.   PARAAAZIONEP(A,P)=Param
  4348.   Cls 
  4349.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4350.   Locate 0,ULTIMALINEA : Cline 
  4351.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4352.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4353.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4354.   PARACAZIONEP(A,P)=Param
  4355.  Else If AZIONE=36
  4356.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4357.   PARAAAZIONEP(A,P)=Param
  4358.   Cls 
  4359.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4360.   Locate 0,ULTIMALINEA : Cline 
  4361.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4362.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4363.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4364.   PARACAZIONEP(A,P)=Param
  4365.  Else If AZIONE=37
  4366.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4367.   PARAAAZIONEP(A,P)=Param
  4368.   Cls 
  4369.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4370.   Locate 0,ULTIMALINEA : Cline 
  4371.   Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4372.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4373.  Else If AZIONE=38
  4374.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4375.   PARAAAZIONEP(AZIONE,P)=Param
  4376.   Cls 
  4377.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4378.   Locate 0,ULTIMALINEA : Cline 
  4379.   Repeat 
  4380.    Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4381.    Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4382.    Locate 0,ULTIMALINEA : Cline 
  4383.   Until PARB<>P
  4384.  Else If AZIONE=40
  4385.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4386.   PARAAAZIONEP(A,P)=Param
  4387.  Else If AZIONE=41
  4388.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4389.   PARAAAZIONEP(A,P)=Param
  4390.  End If 
  4391. End Proc
  4392. Procedure _INTERFACCIA
  4393.  A=Dialog Box(_INTERFACCIA$)
  4394. End Proc
  4395. Procedure INVENTARIO
  4396.  Cls 
  4397.  Print "Inventario degli oggetti e dei personaggi trasportati da ";NOMEP$(0);">"
  4398.  For A=0 To NUMEROO
  4399.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4400.    OGGETTIPRESENTI=True
  4401.   End If 
  4402.  Next A
  4403.  If SOLDIP(0)>0 Then OGGETTIPRESENTI=True
  4404.  If OGGETTIPRESENTI=True
  4405.   For A=0 To NUMEROCO
  4406.    If OGGETTODELPERSONAGGIO0(A)>0
  4407.     Print Str$(OGGETTODELPERSONAGGIO0(A))-" ";" ";
  4408.     If OGGETTODELPERSONAGGIO0(A)=1
  4409.      Print NOMESCO$(A)
  4410.     Else 
  4411.      Print NOMEPCO$(A)
  4412.     End If 
  4413.     Proc FONDOSCHERMOGIOCO
  4414.    End If 
  4415.    If RESTODELPERSONAGGIO0(A)>0
  4416.     Print Str$(RESTODELPERSONAGGIO0(A))-" ";" ";
  4417.     If RESTODELPERSONAGGIO0(A)=1
  4418.      Print NOMESRO$(A)
  4419.     Else 
  4420.      Print NOMEPRO$(A)
  4421.     End If 
  4422.     Proc FONDOSCHERMOGIOCO
  4423.    End If 
  4424.   Next A
  4425.   If SOLDIP(0)>0
  4426.    Print Str$(SOLDIP(0))-" ";" ";
  4427.    If SOLDIP(0)=1
  4428.     Print "soldo"
  4429.    Else 
  4430.     Print "soldi"
  4431.    End If 
  4432.    Proc FONDOSCHERMOGIOCO
  4433.   End If 
  4434.  Else 
  4435.   Print "Nessun oggetto trasportato"
  4436.  End If 
  4437.  For A=1 To NUMEROP
  4438.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True Then PERSONAGGIPRESENTI=True
  4439.  Next A
  4440.  If PERSONAGGIPRESENTI=True
  4441.   Print "Personaggi trasportati da ";NOMEP$(0);">"
  4442.   For A=1 To NUMEROP
  4443.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4444.     Print NOMEP$(A)
  4445.    End If 
  4446.    Proc FONDOSCHERMOGIOCO
  4447.   Next A
  4448.  Else 
  4449.   Print "Nessun personaggio trasportato"
  4450.  End If 
  4451.  If OGGETTIPRESENTI=True or PERSONAGGIPRESENTI=True
  4452.   Print "Peso totale degli oggetti e dei personaggi trasportati>";
  4453.   If PESONETTOP(0)>999
  4454.    PESOOEPDELP0=PESONETTOP(0)/1000
  4455.    Print Str$(PESOOEPDELP0)-" ";" ";
  4456.    If PESOOEPDELP0=1
  4457.     Print "chilo";
  4458.    Else 
  4459.     Print "chili";
  4460.    End If 
  4461.    PESOOEPDELP0=PESONETTOP(0) mod 1000
  4462.    If PESOOEPDELP0>0
  4463.     Print " e";PESOOEPDELP0;" ";
  4464.     If PESOOEPDELP0=1
  4465.      Print "grammo"
  4466.     Else 
  4467.      Print "grammi"
  4468.     End If 
  4469.    Else 
  4470.     Print 
  4471.    End If 
  4472.   Else 
  4473.    PESOOEPDELP0=PESONETTOP(0)
  4474.    Print Str$(PESOOEPDELP0)-" ";" ";
  4475.    If PESOOEPDELP0=1
  4476.     Print "grammo"
  4477.    Else 
  4478.     Print "grammi"
  4479.    End If 
  4480.   End If 
  4481.  End If 
  4482.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4483. End Proc
  4484. Procedure LASCIA
  4485.  If TEMP0DIATTRAVERSAMENTOP(0)>0
  4486.   For A=1 To NUMEROP
  4487.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4488.     Inc PERSONAGGI
  4489.    End If 
  4490.   Next A
  4491.   If PERSONAGGI>0
  4492.    Proc LASCIAUNPERSONAGGIO
  4493.   Else 
  4494.    Print At(0,ULTIMALINEA);"Non hai personaggi da lasciare";
  4495.    If _MUSICA=False
  4496.     Bell 1
  4497.    End If 
  4498.    Proc _ASPETTA
  4499.    Pop Proc
  4500.   End If 
  4501.  Else 
  4502.   For A=1 To NUMEROP
  4503.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4504.     Inc PERSONAGGI
  4505.    End If 
  4506.   Next A
  4507.  End If 
  4508.  For A=0 To NUMEROCO
  4509.   If OGGETTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4510.   If RESTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4511.  Next A
  4512.  If SOLDIP(0)>0 Then SOLDI=True
  4513.  If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  4514.   Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  4515.   OGGETTOOPERSONAGGIO$=Input$(1)
  4516.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4517.   If OGGETTOOPERSONAGGIO$="o"
  4518.    Proc LASCIAUNOGGETTO
  4519.   Else If OGGETTOOPERSONAGGIO$="p"
  4520.    Proc LASCIAUNPERSONAGGIO
  4521.   Else If OGGETTOOPERSONAGGIO$="s"
  4522.    Proc LASCIADEISOLDI
  4523.   End If 
  4524.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  4525.   Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto o dei soldi (o/s) ?>";
  4526.   OGGETTOOSOLDI$=Input$(1)
  4527.   OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  4528.   If OGGETTOOSOLDI$="o"
  4529.    Proc LASCIAUNOGGETTO
  4530.   Else If OGGETTOOSOLDI$="s"
  4531.    Proc LASCIADEISOLDI
  4532.   End If 
  4533.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  4534.   Print At(0,ULTIMALINEA);"Vuoi lasciare un personaggio o dei soldi (p/s) ?>";
  4535.   PERSONAGGIOOSOLDI$=Input$(1)
  4536.   PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  4537.   If PERSONAGGIOOSOLDI$="p"
  4538.    Proc LASCIAUNPERSONAGGIO
  4539.   Else If PERSONAGGIOOSOLDI$="s"
  4540.    Proc LASCIADEISOLDI
  4541.   End If 
  4542.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  4543.   Proc LASCIADEISOLDI
  4544.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  4545.   Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto od un personaggio (o/p) ?>";
  4546.   OGGETTOOPERSONAGGIO$=Input$(1)
  4547.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4548.   If OGGETTOOPERSONAGGIO$="o"
  4549.    Proc LASCIAUNOGGETTO
  4550.   Else If OGGETTOOPERSONAGGIO$="p"
  4551.    Proc LASCIAUNPERSONAGGIO
  4552.   End If 
  4553.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  4554.   Proc LASCIAUNOGGETTO
  4555.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  4556.   Proc LASCIAUNPERSONAGGIO
  4557.  Else 
  4558.   Print At(0,ULTIMALINEA);"Non hai oggetti,personaggi o soldi da lasciare";
  4559.   If _MUSICA=False
  4560.    Bell 1
  4561.   End If 
  4562.   Proc _ASPETTA
  4563.  End If 
  4564. End Proc
  4565. Procedure LASCIAAO[AZIONE,P]
  4566.  NUMEROOGGETTODELPERSONAGGIOP=-1
  4567.  For A=0 To NUMEROO
  4568.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4569.    Inc NUMEROOGGETTODELPERSONAGGIOP
  4570.    B=A
  4571.   End If 
  4572.  Next A
  4573.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  4574.   Pop Proc
  4575.  End If 
  4576.  If NUMEROOGGETTODELPERSONAGGIOP=0
  4577.   A=B
  4578.  Else 
  4579.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  4580.   B=0
  4581.   For A=0 To NUMEROO
  4582.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4583.     OGGETTODELPERSONAGGIOP(B)=A
  4584.     Inc B
  4585.    End If 
  4586.   Next A
  4587.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  4588.  End If 
  4589.  POSIZIONEO(A)=POSIZIONEP(P)
  4590.  If Btst(1,TIPOO(A))=True
  4591.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4592.  Else 
  4593.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4594.  End If 
  4595.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4596.   For B=0 To NUMEROO
  4597.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4598.     If Btst(1,TIPOO(B))=True
  4599.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4600.     Else 
  4601.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4602.     End If 
  4603.    End If 
  4604.   Next B
  4605.   For B=1 To NUMEROP
  4606.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4607.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4608.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4609.    End If 
  4610.   Next B
  4611.  End If 
  4612.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4613.   Print NOMEP$(P);" lascia 1 ";
  4614.   If Btst(1,TIPOO(A))=True
  4615.    Print NOMESRO$(CATEGORIAO(A))
  4616.   Else 
  4617.    Print NOMESCO$(CATEGORIAO(A))
  4618.   End If 
  4619.  End If 
  4620.  Dec PARAAAZIONEP(AZIONE,P)
  4621.  If PARAAAZIONEP(AZIONE,P)=0
  4622.   FINEA(AZIONE,P)=True
  4623.  End If 
  4624. End Proc
  4625. Procedure LASCIAAOB[AZIONE,P]
  4626.  NUMEROOGGETTODELPERSONAGGIOP=-1
  4627.  For A=0 To NUMEROO
  4628.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4629.    Inc NUMEROOGGETTODELPERSONAGGIOP
  4630.    B=A
  4631.   End If 
  4632.  Next A
  4633.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  4634.   Pop Proc
  4635.  End If 
  4636.  If NUMEROOGGETTODELPERSONAGGIOP=0
  4637.   A=B
  4638.  Else 
  4639.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  4640.   B=0
  4641.   For A=0 To NUMEROO
  4642.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4643.     OGGETTODELPERSONAGGIOP(B)=A
  4644.     Inc B
  4645.    End If 
  4646.   Next A
  4647.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  4648.  End If 
  4649.  POSIZIONEO(A)=POSIZIONEP(P)
  4650.  If Btst(1,TIPOO(A))=True
  4651.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4652.  Else 
  4653.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4654.  End If 
  4655.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4656.   For B=0 To NUMEROO
  4657.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4658.     If Btst(1,TIPOO(B))=True
  4659.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4660.     Else 
  4661.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4662.     End If 
  4663.    End If 
  4664.   Next B
  4665.   For B=1 To NUMEROP
  4666.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4667.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4668.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4669.    End If 
  4670.   Next B
  4671.  End If 
  4672.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4673.   Print NOMEP$(P);" lascia 1 ";
  4674.   If Btst(1,TIPOO(A))=True
  4675.    Print NOMESRO$(CATEGORIAO(A))
  4676.   Else 
  4677.    Print NOMESCO$(CATEGORIAO(A))
  4678.   End If 
  4679.  End If 
  4680.  Dec PARAAAZIONEP(AZIONE,P)
  4681.  If PARAAAZIONEP(AZIONE,P)=0
  4682.   FINEA(AZIONE,P)=True
  4683.  End If 
  4684. End Proc
  4685. Procedure LASCIAAOTB[AZIONE,P]
  4686.  NUMEROOGGETTODELPERSONAGGIOP=-1
  4687.  For A=0 To NUMEROO
  4688.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4689.    Inc NUMEROOGGETTODELPERSONAGGIOP
  4690.    B=A
  4691.   End If 
  4692.  Next A
  4693.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  4694.   Pop Proc
  4695.  End If 
  4696.  If NUMEROOGGETTODELPERSONAGGIOP=0
  4697.   A=B
  4698.  Else 
  4699.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  4700.   B=0
  4701.   For A=0 To NUMEROO
  4702.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4703.     OGGETTODELPERSONAGGIOP(B)=A
  4704.     Inc B
  4705.    End If 
  4706.   Next A
  4707.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  4708.  End If 
  4709.  POSIZIONEO(A)=POSIZIONEP(P)
  4710.  If Btst(1,TIPOO(A))=True
  4711.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4712.  Else 
  4713.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4714.  End If 
  4715.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4716.   For B=0 To NUMEROO
  4717.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4718.     If Btst(1,TIPOO(B))=True
  4719.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4720.     Else 
  4721.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4722.     End If 
  4723.    End If 
  4724.   Next B
  4725.   For B=1 To NUMEROP
  4726.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4727.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4728.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4729.    End If 
  4730.   Next B
  4731.  End If 
  4732.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4733.   Print NOMEP$(P);" lascia 1 ";
  4734.   If Btst(1,TIPOO(A))=True
  4735.    Print NOMESRO$(CATEGORIAO(A))
  4736.   Else 
  4737.    Print NOMESCO$(CATEGORIAO(A))
  4738.   End If 
  4739.  End If 
  4740.  Dec PARAAAZIONEP(AZIONE,P)
  4741.  If PARAAAZIONEP(AZIONE,P)=0
  4742.   FINEA(AZIONE,P)=True
  4743.  End If 
  4744. End Proc
  4745. Procedure LASCIAAP[AZIONE,P]
  4746.  For A=1 To NUMEROP
  4747.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4748.    POSIZIONEP(A)=POSIZIONEP(P)
  4749.    TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4750.    Bclr 0,TIPOP(A)
  4751.    Add PESONETTOP(P),-PESOP(A)*1000
  4752.    Add PESONETTOP(P),-PESONETTOP(A)
  4753.    If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4754.     Print NOMEP$(P);" lascia ";NOMEP$(A)
  4755.    End If 
  4756.    Dec PARABAZIONEP(AZIONE,P)
  4757.    If PARABAZIONEP(AZIONE,P)=0
  4758.     FINEA(AZIONE,P)=True
  4759.    End If 
  4760.    Exit 
  4761.   End If 
  4762.  Next A
  4763. End Proc
  4764. Procedure LASCIADEISOLDI
  4765.  Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi lasciare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDI$;
  4766.  Curs Off 
  4767.  If SOLDI$<>""
  4768.   SOLDI=Val(SOLDI$)
  4769.   Proc LIMITI[SOLDI,0,SOLDIP(0)] : SOLDI=Param
  4770.   If SOLDI>0
  4771.    Add SOLDIP(0),-SOLDI
  4772.    E=POSIZIONEP(0)/$10000
  4773.    If E>0
  4774.     S=POSIZIONEP(0) mod $10000
  4775.     Add SOLDIS(S,E-1),SOLDI
  4776.    Else 
  4777.     Add SOLDIL(POSIZIONEP(0)),SOLDI
  4778.    End If 
  4779.    Add PESONETTOP(0),-SOLDI*PESOS
  4780.    COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4781.    Print "Hai deciso di lasciare";SOLDI;
  4782.    If SOLDI=1
  4783.     Print " soldo";
  4784.    Else 
  4785.     Print " soldi";
  4786.    End If 
  4787.    Proc _ASPETTA
  4788.   End If 
  4789.  End If 
  4790. End Proc
  4791. Procedure LASCIAOGGETTO[O]
  4792.  POSIZIONEO(O)=POSIZIONEP(0)
  4793.  If Btst(1,TIPOO(O))=True
  4794.   Dec RESTODELPERSONAGGIO0(CATEGORIAO(O))
  4795.   Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(O))
  4796.  Else 
  4797.   Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  4798.   Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  4799.   Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  4800.  End If 
  4801.  If Btst(1,TIPOCO(CATEGORIAO(O)))=True
  4802.   For A=0 To NUMEROO
  4803.    If POSIZIONEO(A)=-1-O and Btst(0,TIPOO(A))=False
  4804.     If Btst(1,TIPOO(A))=True
  4805.      Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(A))
  4806.     Else 
  4807.      Add PESONETTOP(0),-PESOCO(CATEGORIAO(A))
  4808.     End If 
  4809.    End If 
  4810.   Next A
  4811.   For A=1 To NUMEROP
  4812.    If POSIZIONEP(A)=-1-O and Btst(0,TIPOP(A))=False
  4813.     Add PESONETTOP(0),-PESOP(A)*1000
  4814.     Add PESONETTOP(0),-PESONETTOP(A)
  4815.    End If 
  4816.   Next A
  4817.  End If 
  4818.  COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4819.  Print "Hai deciso di lasciare 1 ";
  4820.  If Btst(1,TIPOO(O))=True
  4821.   Print NOMESRO$(CATEGORIAO(O));
  4822.  Else 
  4823.   Print NOMESCO$(CATEGORIAO(O));
  4824.  End If 
  4825.  Proc _ASPETTA
  4826. End Proc
  4827. Procedure LASCIAPA[AZIONE,P]
  4828.  A=PARAAAZIONEP(AZIONE,P)
  4829.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4830.   POSIZIONEP(A)=POSIZIONEP(P)
  4831.   TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4832.   Bclr 0,TIPOP(A)
  4833.   Add PESONETTOP(P),-PESOP(A)*1000
  4834.   Add PESONETTOP(P),-PESONETTOP(A)
  4835.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4836.    Print NOMEP$(P);" lascia ";NOMEP$(A)
  4837.   End If 
  4838.   FINEA(AZIONE,P)=True
  4839.  End If 
  4840. End Proc
  4841. Procedure LASCIAPASSAREILTEMPO
  4842.  COMPIUTAAZIONE=5
  4843.  Print At(0,ULTIMALINEA);"Hai deciso di aspettare cinque minuti";
  4844.  Proc _ASPETTA
  4845. End Proc
  4846. Procedure LASCIAUNOGGETTO
  4847.  For A=0 To NUMEROCO
  4848.   If OGGETTODELPERSONAGGIO0(A)>0
  4849.    Inc CATEGORIEOGGETTI
  4850.   End If 
  4851.   If RESTODELPERSONAGGIO0(A)>0
  4852.    Inc CATEGORIEOGGETTI
  4853.   End If 
  4854.  Next A
  4855.  OGGETTODIFENSIVOINDOSSATO=-1
  4856.  For A=0 To NUMEROO
  4857.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4858.    If Btst(2,TIPOO(A))=True
  4859.     OGGETTODIFENSIVOINDOSSATO=A
  4860.    Else 
  4861.     Inc OGGETTIERESTIDIFENSIVINONINDOSSATI
  4862.     If Btst(1,TIPOO(A))=True
  4863.      Inc RESTIDIFENSIVINONINDOSSATI
  4864.     Else 
  4865.      Inc OGGETTIDIFENSIVINONINDOSSATI
  4866.     End If 
  4867.    End If 
  4868.   End If 
  4869.  Next A
  4870.  If CATEGORIEOGGETTI>0
  4871.   If CATEGORIEOGGETTI>1
  4872.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi lasciare ?>";OGGETTO$;
  4873.    Curs Off 
  4874.    If OGGETTO$<>""
  4875.     For A=0 To NUMEROO
  4876.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4877.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  4878.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4879.         If OGGETTODIFENSIVOINDOSSATO>-1
  4880.          If OGGETTIDIFENSIVINONINDOSSATI=0
  4881.           Bclr 2,TIPOO(A)
  4882.           Proc LASCIAOGGETTO[A] : Exit 
  4883.          Else 
  4884.           If A<>OGGETTODIFENSIVOINDOSSATO
  4885.            Proc LASCIAOGGETTO[A] : Exit 
  4886.           Else 
  4887.            If RESTIDIFENSIVINONINDOSSATI>0
  4888.             Bclr 2,TIPOO(A)
  4889.             Proc LASCIAOGGETTO[A] : Exit 
  4890.            End If 
  4891.           End If 
  4892.          End If 
  4893.         Else 
  4894.          Proc LASCIAOGGETTO[A] : Exit 
  4895.         End If 
  4896.        Else 
  4897.         Proc LASCIAOGGETTO[A] : Exit 
  4898.        End If 
  4899.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  4900.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4901.         If OGGETTODIFENSIVOINDOSSATO>-1
  4902.          If RESTIDIFENSIVINONINDOSSATI=0
  4903.           Bclr 2,TIPOO(A)
  4904.           Proc LASCIAOGGETTO[A] : Exit 
  4905.          Else 
  4906.           If A<>OGGETTODIFENSIVOINDOSSATO
  4907.            Proc LASCIAOGGETTO[A] : Exit 
  4908.           Else 
  4909.            If OGGETTIDIFENSIVINONINDOSSATI>0
  4910.             Bclr 2,TIPOO(A)
  4911.             Proc LASCIAOGGETTO[A] : Exit 
  4912.            End If 
  4913.           End If 
  4914.          End If 
  4915.         Else 
  4916.          Proc LASCIAOGGETTO[A] : Exit 
  4917.         End If 
  4918.        Else 
  4919.         Proc LASCIAOGGETTO[A] : Exit 
  4920.        End If 
  4921.       End If 
  4922.      End If 
  4923.     Next A
  4924.     If A=NUMEROO+1
  4925.      Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  4926.      If _MUSICA=False
  4927.       Bell 1
  4928.      End If 
  4929.      Proc _ASPETTA
  4930.     End If 
  4931.    End If 
  4932.   Else 
  4933.    For A=0 To NUMEROO
  4934.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4935.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4936.       If OGGETTODIFENSIVOINDOSSATO>-1
  4937.        If OGGETTIERESTIDIFENSIVINONINDOSSATI=0
  4938.         Bclr 2,TIPOO(A)
  4939.         Proc LASCIAOGGETTO[A] : Exit 
  4940.        Else 
  4941.         If A<>OGGETTODIFENSIVOINDOSSATO
  4942.          Proc LASCIAOGGETTO[A] : Exit 
  4943.         End If 
  4944.        End If 
  4945.       Else 
  4946.        Proc LASCIAOGGETTO[A] : Exit 
  4947.       End If 
  4948.      Else 
  4949.       Proc LASCIAOGGETTO[A] : Exit 
  4950.      End If 
  4951.     End If 
  4952.    Next A
  4953.   End If 
  4954.  End If 
  4955. End Proc
  4956. Procedure LASCIAUNPERSONAGGIO
  4957.  For A=1 To NUMEROP
  4958.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4959.    Inc PERSONAGGI
  4960.   End If 
  4961.  Next A
  4962.  If PERSONAGGI>0
  4963.   If PERSONAGGI>1
  4964.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi lasciare ?>";PERSONAGGIO$;
  4965.    Curs Off 
  4966.    If PERSONAGGIO$<>""
  4967.     For A=0 To NUMEROP
  4968.      If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4969.       POSIZIONEP(A)=POSIZIONEP(0)
  4970.       TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4971.       DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4972.       Add PESONETTOP(0),-PESOP(A)*1000
  4973.       Add PESONETTOP(0),-PESONETTOP(A)
  4974.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4975.       Print "Hai deciso di lasciare ";NOMEP$(A);
  4976.       Proc _ASPETTA : Exit 
  4977.      End If 
  4978.     Next A
  4979.     If A=NUMEROP+1
  4980.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4981.      If _MUSICA=False
  4982.       Bell 1
  4983.      End If 
  4984.      Proc _ASPETTA
  4985.     End If 
  4986.    End If 
  4987.   Else 
  4988.    For A=0 To NUMEROP
  4989.     If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4990.      POSIZIONEP(A)=POSIZIONEP(0)
  4991.      TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4992.      DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4993.      Add PESONETTOP(0),-PESOP(A)*1000
  4994.      Add PESONETTOP(0),-PESONETTOP(A)
  4995.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4996.      Print "Hai deciso di lasciare ";NOMEP$(A);
  4997.      Proc _ASPETTA : Exit 
  4998.     End If 
  4999.    Next A
  5000.   End If 
  5001.  End If 
  5002. End Proc
  5003. Procedure LIMITI[NUMERO,LIMITEMINIMO,LIMITEMASSIMO]
  5004.  '-> Limiti by Stefano Regattin 
  5005.  'i> 19 maggio 1996 
  5006.  'm> 12 giugno 1996 
  5007.  '--------------------------------------------------------
  5008.  'La procedura equivale alle seguenti linee di programma: 
  5009.  ' If NUMERO<LIMITEMINIMO Then NUMERO=LIMITEMINIMO
  5010.  ' If NUMERO>LIMITEMASSIMO Then NUMERO=LIMITEMASSIMO
  5011.  'Se LIMITEMINIMO ï¿½ maggiore di LIMITEMASSIMO ne scambia i valori 
  5012.  '----------------------------------------------------------------  
  5013.  If LIMITEMINIMO>LIMITEMASSIMO Then Swap LIMITEMINIMO,LIMITEMASSIMO
  5014.  NUMERO=Max(Min(NUMERO,LIMITEMASSIMO),LIMITEMINIMO)
  5015. End Proc[NUMERO]
  5016. Procedure LUOGO
  5017.  Print "Regione>";NOMER$(REGIONEL(POSIZIONEP(0)))
  5018.  Print "Luogo>";NOMEL$(POSIZIONEP(0))
  5019.  Print "Direzioni visibili>";
  5020.  For A=0 To 9
  5021.   DREZIONE=DREZIONEL(A,POSIZIONEP(0)) mod $10000
  5022.   If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  5023.  Next A
  5024.  Print 
  5025. End Proc
  5026. Procedure MESSAGGIO[MESSAGGIO$]
  5027.  Locate 0,ULTIMALINEA
  5028.  If CARATTEREMESSAGGIO=0
  5029.   Ink 0,1 : Text 0,254,Space$(80) : Ink 1,0
  5030.   'Inverse On : Print Space$(80);
  5031.  End If 
  5032.  Hscroll 1
  5033.  Add CARATTEREMESSAGGIO,1,1 To Len(MESSAGGIO$)
  5034.  Ink 0,1
  5035.  'Inverse On  
  5036.  Text 631,ULTIMALINEA*8-1+7,Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1)
  5037.  'Print At(79,ULTIMALINEA);Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1); 
  5038.  Ink 1,0
  5039.  'Inverse Off 
  5040.  Wait 5
  5041. End Proc
  5042. Procedure M0DCATEGORIADEGLIOGGETTI
  5043.  Cls 
  5044.  Print "Nome singolare della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5045.  Locate 0,ULTIMALINEA : Input "Nuovo nome singolare della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5046.  If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMESCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5047.  Cls 
  5048.  Print "Nome plurale della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  5049.  Locate 0,ULTIMALINEA : Input "Nuovo nome plurale della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5050.  If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMEPCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5051.  Cls 
  5052.  Print "Nome singolare del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESRO$(CATEGORIADEGLIOGGETTI)
  5053.  Locate 0,ULTIMALINEA : Input "Nuovo nome singolare del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5054.  If NOMERESTODEGLIOGGETTI$<>"" Then NOMESRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5055.  Cls 
  5056.  Print "Nome plurale del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  5057.  Locate 0,ULTIMALINEA : Input "Nuovo nome plurale del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5058.  If NOMERESTODEGLIOGGETTI$<>"" Then NOMEPRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5059.  Cls 
  5060.  PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  5061.  Print "Peso della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESOOGGETTO)-" ";" ";
  5062.  If PESOOGGETTO=1
  5063.   Print "grammo"
  5064.  Else 
  5065.   Print "grammi"
  5066.  End If 
  5067.  Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria degli oggetti in grammi>";PESOCATEGORIADEGLIOGGETTI$;
  5068.  If PESOCATEGORIADEGLIOGGETTI$<>"" Then PESOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEGLIOGGETTI$)
  5069.  Cls 
  5070.  PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  5071.  Print "Peso della categoria dei resti degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESORESTOOGGETTO)-" ";" ";
  5072.  If PESORESTOOGGETTO=1
  5073.   Print "grammo"
  5074.  Else 
  5075.   Print "grammi"
  5076.  End If 
  5077.  Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria dei resti degli oggetti in grammi>";PESOCATEGORIADEIRESTIDEGLIOGGETTI$;
  5078.  If PESOCATEGORIADEIRESTIDEGLIOGGETTI$<>"" Then PESORESTOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEIRESTIDEGLIOGGETTI$)
  5079.  Curs Off 
  5080.  Cls 
  5081.  Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";
  5082.  Print NOMESCO$(CATEGORIADEGLIOGGETTI)
  5083.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano commestibili (s/n) ?>";
  5084.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5085.  If RISPOSTA$="s"
  5086.   Bset 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5087.  Else 
  5088.   Bclr 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5089.  End If 
  5090.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano contenitori (s/n) ?>";
  5091.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5092.  If RISPOSTA$="s"
  5093.   Bset 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5094.  Else 
  5095.   If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True
  5096.    For A=0 To NUMEROO
  5097.     For B=0 To NUMEROO
  5098.      If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and A<>B
  5099.       POSIZIONEO(B)=POSIZIONEO(A)
  5100.      End If 
  5101.     Next B
  5102.     For B=0 To NUMEROP
  5103.      If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  5104.       POSIZIONEP(B)=POSIZIONEO(A)
  5105.      End If 
  5106.     Next B
  5107.    Next A
  5108.   End If 
  5109.   Bclr 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5110.  End If 
  5111.  Locate 0,ULTIMALINEA : Cline 
  5112.  Print "Vuoi che gli oggetti siano difensivi (s/n) ?>";
  5113.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5114.  If RISPOSTA$="s"
  5115.   Bset 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5116.  Else 
  5117.   Bclr 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5118.  End If 
  5119.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano leggibili (s/n) ?>";
  5120.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5121.  If RISPOSTA$="s"
  5122.   Bset 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5123.  Else 
  5124.   Bclr 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5125.  End If 
  5126.  Locate 0,ULTIMALINEA : Cline 
  5127.  Print "Vuoi che gli oggetti siano liquidi o solidi (l/s) ?>";
  5128.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5129.  If RISPOSTA$="l"
  5130.   Bset 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5131.  Else 
  5132.   Bclr 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5133.  End If 
  5134.  Locate 0,ULTIMALINEA : Cline 
  5135.  Print "Vuoi che gli oggetti siano magici (s/n) ?>";
  5136.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5137.  If RISPOSTA$="s"
  5138.   Bset 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5139.  Else 
  5140.   Bclr 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5141.  End If 
  5142.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano offensivi (s/n) ?>";
  5143.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5144.  If RISPOSTA$="s"
  5145.   Bset 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5146.  Else 
  5147.   Bclr 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5148.  End If 
  5149.  For A=0 To NUMEROO
  5150.   If POSIZIONEO(A)<0
  5151.    NONRESIDENTI=True
  5152.   End If 
  5153.  Next A
  5154.  If NONRESIDENTI=True
  5155.   Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano residenti (s/n) ?>";
  5156.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5157.   If RISPOSTA$="s"
  5158.    Bset 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5159.   Else 
  5160.    Bclr 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5161.   End If 
  5162.  End If 
  5163.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano trasferibili (s/n) ?>";
  5164.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5165.  If RISPOSTA$="s"
  5166.   Bset 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5167.  Else 
  5168.   Bclr 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5169.  End If 
  5170.  Locate 0,ULTIMALINEA : Cline 
  5171.  Print "Vuoi che gli oggetti siano trasparenti (s/n) ?>";
  5172.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5173.  If RISPOSTA$="s"
  5174.   Bset 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5175.  Else 
  5176.   Bclr 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5177.  End If 
  5178.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano vincolati ad un oggetto (s/n) ?>";
  5179.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5180.  If RISPOSTA$="s"
  5181.   Repeat 
  5182.    Cls 
  5183.    Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5184.    Print At(0,ULTIMALINEA-1);"Scegli l'oggetto vincolante>";NOMESCO$(CO)
  5185.    Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto vincolante Spazio conferma",ULTIMALINEA]
  5186.    Repeat 
  5187.     TASTOPREMUTO$=Inkey$
  5188.    Until TASTOPREMUTO$<>""
  5189.    If TASTOPREMUTO$=Cup$ : Add CO,-1,0 To NUMEROCO : End If 
  5190.    If TASTOPREMUTO$=Cdown$ : Add CO,1,0 To NUMEROCO : End If 
  5191.   Until TASTOPREMUTO$=" "
  5192.   PARATIPOCO(CATEGORIADEGLIOGGETTI)=CO
  5193.   Bset 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5194.  Else 
  5195.   Bclr 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5196.   Cls 
  5197.   Print "Parametro della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  5198.   Locate 0,ULTIMALINEA : Input "Nuovo parametro della categoria degli oggetti>";PARACATEGORIADEGLIOGGETTI$;
  5199.   If PARACATEGORIADEGLIOGGETTI$<>""
  5200.    PARATIPOCO(CATEGORIADEGLIOGGETTI)=Val(PARACATEGORIADEGLIOGGETTI$)
  5201.   End If 
  5202.  End If 
  5203.  Curs Off 
  5204. End Proc
  5205. Procedure M0DDESCRIZIONE[DESCRIZIONE$]
  5206.  INIZIODESCRIZIONE=1
  5207.  FINEDESCRIZIONE=Min(Len(DESCRIZIONE$),32*80-1)
  5208.  Curs Off 
  5209.  Repeat 
  5210.   Cls 
  5211.   For DESCRIZIONE=INIZIODESCRIZIONE To FINEDESCRIZIONE
  5212.    Print Mid$(DESCRIZIONE$,DESCRIZIONE,1);
  5213.    Exit If FINEDESCRIZIONE-INIZIODESCRIZIONE=32*80-2
  5214.    Exit If DESCRIZIONE=Len(DESCRIZIONE$)
  5215.   Next DESCRIZIONE
  5216.   Wait Vbl 
  5217.   POSIZIONEY=DESCRIZIONE/80
  5218.   Curs On 
  5219.   Repeat 
  5220.    If RICORDA=True
  5221.     DISTANZAY=Y Curs-RICORDAY
  5222.     Add POSIZIONEY,-DISTANZAY
  5223.     Locate RICORDAX,RICORDAY : RICORDA=False
  5224.    End If 
  5225.    BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5226.    BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5227.    Repeat 
  5228.     TASTO$=Inkey$
  5229.     CODICESCANSIONE=Scancode
  5230.    Until TASTO$<>""
  5231.    If Asc(TASTO$)=0
  5232.     If CODICESCANSIONE=70 and Len(BLOCCOSUCCESSIVO$)>0
  5233.      BLOCCOSUCCESSIVO$=Right$(BLOCCOSUCCESSIVO$,Len(BLOCCOSUCCESSIVO$)-1)
  5234.      DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5235.      RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5236.      INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAY*80,1)
  5237.      FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5238.      Exit 
  5239.     End If 
  5240.    Else 
  5241.     If TASTO$=Chr$(8)
  5242.      BLOCCOPRECEDENTE$=Left$(BLOCCOPRECEDENTE$,Len(BLOCCOPRECEDENTE$)-1)
  5243.      DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5244.      RICORDAX=X Curs-1 : RICORDAY=Y Curs
  5245.      If RICORDAX=-1
  5246.       RICORDAX=79 : Dec RICORDAY
  5247.       If RICORDAY=-1
  5248.        If POSIZIONEY>0
  5249.         Vscroll 1 : RICORDAX=0 : RICORDAY=0 : Dec POSIZIONEY
  5250.         INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5251.        Else 
  5252.         RICORDAX=0 : RICORDAY=0
  5253.        End If 
  5254.       End If 
  5255.      End If 
  5256.      XG=X Graphic(RICORDAX) : YG=Y Graphic(RICORDAY)
  5257.      Ink 0 : Bar XG,YG To XG+7,YG+7 : Ink 1
  5258.      INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5259.      FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5260.      RICORDA=True
  5261.      Exit 
  5262.     Else If TASTO$=Cup$
  5263.      If Y Curs=0
  5264.       If POSIZIONEY>31
  5265.        Vscroll 1 : Dec POSIZIONEY
  5266.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5267.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5268.        RICORDAX=0 : RICORDAY=0 : RICORDA=True
  5269.        INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5270.        Exit 
  5271.       End If 
  5272.      Else 
  5273.       Cmove ,-1 : Dec POSIZIONEY
  5274.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5275.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5276.      End If 
  5277.     Else If TASTO$=Cdown$
  5278.      If Y Curs=32
  5279.       If Len(BLOCCOSUCCESSIVO$)>79
  5280.        Vscroll 3 : Inc POSIZIONEY
  5281.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5282.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5283.       End If 
  5284.      Else 
  5285.       If Len(BLOCCOSUCCESSIVO$)>79
  5286.        Cmove ,1 : Inc POSIZIONEY
  5287.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5288.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5289.       End If 
  5290.      End If 
  5291.     Else If TASTO$=Cleft$
  5292.      If X Curs=0
  5293.       If Y Curs=0
  5294.        If POSIZIONEY>0
  5295.         Vscroll 1 : Dec POSIZIONEY
  5296.         BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5297.         BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5298.        End If 
  5299.       Else 
  5300.        Locate 79, : Cmove ,-1 : Dec POSIZIONEY
  5301.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5302.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5303.       End If 
  5304.      Else 
  5305.       Cmove -1,
  5306.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5307.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5308.      End If 
  5309.     Else If TASTO$=Cright$
  5310.      If X Curs=79
  5311.       If Y Curs=32
  5312.        If Len(BLOCCOSUCCESSIVO$)>0
  5313.         Vscroll 3 : Inc POSIZIONEY
  5314.         BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5315.         BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5316.        End If 
  5317.       Else 
  5318.        Locate 0, : Cmove ,1 : Inc POSIZIONEY
  5319.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5320.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5321.       End If 
  5322.      Else 
  5323.       If Len(BLOCCOSUCCESSIVO$)>0
  5324.        Cmove 1,
  5325.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5326.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5327.       End If 
  5328.      End If 
  5329.     Else 
  5330.      CARATTERIVALIDI$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz������!',;.:1234567890 "
  5331.      If Instr(CARATTERIVALIDI$,TASTO$)>0
  5332.       DESCRIZIONE$=BLOCCOPRECEDENTE$+TASTO$+BLOCCOSUCCESSIVO$
  5333.       If Len(BLOCCOSUCCESSIVO$)>0
  5334.        RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5335.        INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5336.        FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5337.        Exit 
  5338.       Else 
  5339.        ULTIMACOLONNA=X Curs
  5340.        Print TASTO$;
  5341.        If ULTIMACOLONNA=79
  5342.         Inc POSIZIONEY
  5343.         If Y Curs=31
  5344.          Vscroll 3
  5345.          RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5346.          INIZIODESCRIZIONE=Max(POSIZIONEY*80-79,1)
  5347.          FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5348.          Exit 
  5349.         End If 
  5350.        End If 
  5351.       End If 
  5352.      End If 
  5353.     End If 
  5354.    End If 
  5355.   Until TASTO$=Chr$(27)
  5356.  Until TASTO$=Chr$(27)
  5357.  Curs Off 
  5358. End Proc[DESCRIZIONE$]
  5359. Procedure M0DEDIFICIO
  5360.  Cls 
  5361.  Print "Nome dell'edificio";EDIFICIO;">";NOMEE$(EDIFICIO)
  5362.  Locate 0,ULTIMALINEA
  5363.  Input "Nuovo nome dell'edificio"+Str$(EDIFICIO)+">";NOMEEDIFICIO$;
  5364.  If NOMEEDIFICIO$<>"" Then NOMEE$(EDIFICIO)=NOMEEDIFICIO$
  5365.  Cls 
  5366.  Print "Posizione dell'edificio";EDIFICIO;">luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  5367.  Locate 0,ULTIMALINEA
  5368.  Input "Nuova posizione dell'edificio"+Str$(EDIFICIO)+" (0-"+Str$(NUMEROL)-" "+")>";NUOVAPOSIZIONEEDIFICIO$;
  5369.  If NUOVAPOSIZIONEEDIFICIO$<>""
  5370.   NUOVAPOSIZIONEEDIFICIO=Val(NUOVAPOSIZIONEEDIFICIO$)
  5371.   Proc LIMITI[NUOVAPOSIZIONEEDIFICIO,0,NUMEROL] : NUOVAPOSIZIONEEDIFICIO=Param
  5372.   POSIZIONEE(EDIFICIO)=NUOVAPOSIZIONEEDIFICIO
  5373.  End If 
  5374.  Cls 
  5375.  Print "Numero delle stanze dell'edificio";EDIFICIO;">";NUMEROS(EDIFICIO)+1
  5376.  Locate 0,ULTIMALINEA
  5377.  Input "Nuovo numero delle stanze dell'edificio"+Str$(EDIFICIO)+" (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  5378.  If NUMEROSTANZE$<>""
  5379.   NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  5380.   Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROSTANZE=Param
  5381.   NUMEROS(EDIFICIO)=NUMEROSTANZE
  5382.  End If 
  5383.  Curs Off 
  5384. End Proc
  5385. Procedure M0DIFICA
  5386.  M0DIFICA=True
  5387.  Fade 5,$660
  5388.  Cls 
  5389.  Proc TIC["premi C per modificare una categoria degli oggetti",ULTIMALINEA-13]
  5390.  Proc TIC["premi D per modificare una descrizione",ULTIMALINEA-12]
  5391.  Proc TIC["premi E per modificare un'edificio",ULTIMALINEA-11]
  5392.  Proc TIC["premi F per modificare lo scopo del gioco",ULTIMALINEA-10]
  5393.  Proc TIC["premi L per modificare un luogo",ULTIMALINEA-9]
  5394.  Proc TIC["premi M per creare una mappa dei luoghi/delle stanze",ULTIMALINEA-8]
  5395.  Proc TIC["premi N per modificare un numero",ULTIMALINEA-7]
  5396.  Proc TIC["premi O per modificare un oggetto",ULTIMALINEA-6]
  5397.  Proc TIC["premi P per modificare un personaggio",ULTIMALINEA-5]
  5398.  Proc TIC["premi R per modificare una regione",ULTIMALINEA-4]
  5399.  Proc TIC["premi S per modificare una stanza",ULTIMALINEA-3]
  5400.  Proc TIC["premi T per modificare il tipo dei luoghi",ULTIMALINEA-2]
  5401.  Proc TIC["premi X per attivare/disattivare la musica",ULTIMALINEA-1]
  5402.  Proc TIC["premi Z per attivare/disattivare i nemici",ULTIMALINEA]
  5403.  SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5404.  If SCELTA$="c" Then Proc M0DIFICACATEGORIADEGLIOGGETTI
  5405.  If SCELTA$="d" Then Proc M0DIFICADESCRIZIONE
  5406.  If SCELTA$="e" Then Proc M0DIFICAEDIFICIO
  5407.  If SCELTA$="f" Then Proc M0DIFICASCOPODELGIOCO
  5408.  If SCELTA$="l" Then Proc M0DIFICALUOGO
  5409.  If SCELTA$="m" Then Proc CREAMAPPA
  5410.  If SCELTA$="n" Then Proc M0DIFICANUMERO
  5411.  If SCELTA$="o" Then Proc M0DIFICAOGGETTO
  5412.  If SCELTA$="p" Then Proc M0DIFICAPERSONAGGIO
  5413.  If SCELTA$="r" Then Proc M0DIFICAREGIONE
  5414.  If SCELTA$="s" Then Proc M0DIFICASTANZA
  5415.  If SCELTA$="t" Then Proc M0DIFICATIPODEILUOGHI
  5416.  If SCELTA$="x"
  5417.   _MUSICA= Not _MUSICA
  5418.   If _MUSICA=True
  5419.    Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  5420.    If FILEREQUESTERMUSICA=True and Param$=""
  5421.     _MUSICA=False
  5422.    End If 
  5423.   Else 
  5424.    Track Loop Of : Track Stop 
  5425.   End If 
  5426.  End If 
  5427.  If SCELTA$="z" Then ANEMICI= Not ANEMICI
  5428.  Fade 5,$60
  5429.  M0DIFICA=False
  5430. End Proc
  5431. Procedure M0DIFICACATEGORIADEGLIOGGETTI
  5432.  CATEGORIADEGLIOGGETTI=0
  5433.  Repeat 
  5434.   Proc MOSTRACATEGORIADEGLIOGGETTI
  5435.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta categoria M modifica Esc esci",ULTIMALINEA]
  5436.   Repeat 
  5437.    TASTOPREMUTO$=Inkey$
  5438.   Until TASTOPREMUTO$<>""
  5439.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5440.   If TASTOPREMUTO$="m" Then Proc M0DCATEGORIADEGLIOGGETTI
  5441.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  5442.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  5443.  Until TASTOPREMUTO$=Chr$(27)
  5444.  CATEGORIADEGLIOGGETTI=0
  5445. End Proc
  5446. Procedure M0DIFICADESCRIZIONE
  5447.  Shared SCELTA$
  5448.  Cls 
  5449.  Proc TIC["premi A per modificare il prologo",ULTIMALINEA-7]
  5450.  Proc TIC["premi C per modificare la descrizione della categoria degli oggetti selezionata",ULTIMALINEA-7]
  5451.  Proc TIC["premi E per modificare la descrizione dell'edificio selezionato",ULTIMALINEA-6]
  5452.  Proc TIC["premi L per modificare la descrizione del luogo selezionato",ULTIMALINEA-5]
  5453.  Proc TIC["premi O per modificare la descrizione dell'oggetto leggibile selezionato",ULTIMALINEA-4]
  5454.  Proc TIC["premi P per modificare la descrizione del personaggio",ULTIMALINEA-3]
  5455.  Proc TIC["premi S per modificare la descrizione della stanza",ULTIMALINEA-2]
  5456.  Proc TIC["premi Z per modificare l'epilogo",ULTIMALINEA-1]
  5457.  Proc TIC["quando sei nell'editor premi Esc per finire",ULTIMALINEA]
  5458.  SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5459.  If SCELTA$="a" Then DESCRIZIONE$=PROLOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5460.  If SCELTA$="c" Then DESCRIZIONE$=DESCRIZIONECO$(CATEGORIADEGLIOGGETTI) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5461.  If SCELTA$="e" Then DESCRIZIONE$=DESCRIZIONEE$(EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5462.  If SCELTA$="l" Then DESCRIZIONE$=DESCRIZIONEL$(LUOGO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5463.  If SCELTA$="o" and TIPOCO(CATEGORIAO(OGGETTO))=%1000
  5464.   DESCRIZIONE$=TESTOO$(PARATIPOCO(CATEGORIAO(OGGETTO))) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5465.  End If 
  5466.  If SCELTA$="p" Then DESCRIZIONE$=DESCRIZIONEP$(PERSONAGGIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5467.  If SCELTA$="s" Then DESCRIZIONE$=DESCRIZIONES$(STANZA,EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5468.  If SCELTA$="z" Then DESCRIZIONE$=EPILOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5469.  
  5470.  If SCELTA$="a" Then PROLOGO$=Param$
  5471.  If SCELTA$="c" Then DESCRIZIONECO$(CATEGORIADEGLIOGGETTI)=Param$
  5472.  If SCELTA$="e" Then DESCRIZIONEE$(EDIFICIO)=Param$
  5473.  If SCELTA$="l" Then DESCRIZIONEL$(LUOGO)=Param$
  5474.  If SCELTA$="o" and TIPOCO(CATEGORIAO(OGGETTO))=%1000
  5475.   TESTOO$(PARATIPOCO(CATEGORIAO(OGGETTO)))=Param$
  5476.  End If 
  5477.  If SCELTA$="p" Then DESCRIZIONEP$(PERSONAGGIO)=Param$
  5478.  If SCELTA$="s" Then DESCRIZIONES$(STANZA,EDIFICIO)=Param$
  5479.  If SCELTA$="z" Then EPILOGO$=Param$
  5480. End Proc
  5481. Procedure M0DIFICAEDIFICIO
  5482.  If NUMEROE=-1 Then Pop Proc
  5483.  EDIFICIO=0
  5484.  Repeat 
  5485.   Proc MOSTRAEDIFICIO
  5486.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta edificio M modifica Esc esci",ULTIMALINEA]
  5487.   Repeat 
  5488.    TASTOPREMUTO$=Inkey$
  5489.   Until TASTOPREMUTO$<>""
  5490.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5491.   If TASTOPREMUTO$="m" Then Proc M0DEDIFICIO
  5492.   If TASTOPREMUTO$=Cup$ Then Add EDIFICIO,-1,0 To NUMEROE
  5493.   If TASTOPREMUTO$=Cdown$ Then Add EDIFICIO,1,0 To NUMEROE
  5494.  Until TASTOPREMUTO$=Chr$(27)
  5495.  LUOGO=0
  5496. End Proc
  5497. Procedure M0DIFICALUOGO
  5498.  LUOGO=0
  5499.  Repeat 
  5500.   Proc MOSTRALUOGO
  5501.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta luogo M modifica Esc esci",ULTIMALINEA]
  5502.   Repeat 
  5503.    TASTOPREMUTO$=Inkey$
  5504.   Until TASTOPREMUTO$<>""
  5505.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5506.   If TASTOPREMUTO$="m" Then Proc M0DLUOGO
  5507.   If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  5508.   If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  5509.  Until TASTOPREMUTO$=Chr$(27)
  5510.  LUOGO=0
  5511. End Proc
  5512. Procedure M0DIFICAOGGETTO
  5513.  OGGETTO=0
  5514.  Repeat 
  5515.   Proc MOSTRAOGGETTO
  5516.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto M modifica Esc esci",ULTIMALINEA]
  5517.   Repeat 
  5518.    TASTOPREMUTO$=Inkey$
  5519.   Until TASTOPREMUTO$<>""
  5520.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5521.   If TASTOPREMUTO$="m" Then Proc M0DOGGETTO
  5522.   If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  5523.   If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  5524.  Until TASTOPREMUTO$=Chr$(27)
  5525.  OGGETTO=0
  5526. End Proc
  5527. Procedure M0DIFICANUMERO
  5528.  Cls 
  5529.  Proc TIC["premi C per modificare il numero delle categorie degli oggetti",ULTIMALINEA-6]
  5530.  Proc TIC["premi E per modificare il numero degli edifici",ULTIMALINEA-5]
  5531.  Proc TIC["premi L per modificare il numero dei luoghi",ULTIMALINEA-4]
  5532.  Proc TIC["premi O per modificare il numero degli oggetti",ULTIMALINEA-3]
  5533.  Proc TIC["premi P per modificare il numero dei personaggi",ULTIMALINEA-2]
  5534.  Proc TIC["premi R per modificare il numero delle regioni",ULTIMALINEA-1]
  5535.  Proc TIC["premi S per modificare il numero delle stanze",ULTIMALINEA]
  5536.  SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5537.  If SCELTA$="c" Then Proc M0DNUMCO
  5538.  If SCELTA$="e" Then Proc M0DNUME
  5539.  If SCELTA$="l" Then Proc M0DNUML
  5540.  If SCELTA$="o" Then Proc M0DNUMO
  5541.  If SCELTA$="p" Then Proc M0DNUMP
  5542.  If SCELTA$="r" Then Proc M0DNUMR
  5543.  If SCELTA$="s" Then Proc M0DNUMS
  5544. End Proc
  5545. Procedure M0DIFICAPERSONAGGIO
  5546.  PERSONAGGIO=0
  5547.  Repeat 
  5548.   Proc MOSTRAPERSONAGGIO
  5549.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta personaggio M modifica Esc esci",ULTIMALINEA]
  5550.   Repeat 
  5551.    TASTOPREMUTO$=Inkey$
  5552.   Until TASTOPREMUTO$<>""
  5553.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5554.   If TASTOPREMUTO$="m" Then Proc M0DPERSONAGGIO
  5555.   If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  5556.   If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  5557.  Until TASTOPREMUTO$=Chr$(27)
  5558.  PERSONAGGIO=0
  5559. End Proc
  5560. Procedure M0DIFICAREGIONE
  5561.  REGIONE=0
  5562.  Repeat 
  5563.   Proc MOSTRAREGIONE
  5564.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta regione M modifica Esc esci",ULTIMALINEA]
  5565.   Repeat 
  5566.    TASTOPREMUTO$=Inkey$
  5567.   Until TASTOPREMUTO$<>""
  5568.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5569.   If TASTOPREMUTO$="m" Then Proc M0DREGIONE
  5570.   If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  5571.   If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  5572.  Until TASTOPREMUTO$=Chr$(27)
  5573.  REGIONE=0
  5574. End Proc
  5575. Procedure M0DIFICASCOPODELGIOCO
  5576.  VECCHIOSCOPODELGIOCO=AZIONEP(7,0)
  5577.  SCOPODELGIOCO=VECCHIOSCOPODELGIOCO
  5578.  SCOPOMODIFICATO=-1
  5579.  Repeat 
  5580.   Proc SCOPODELGIOCO[True]
  5581.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta scopo del gioco M modifica Esc esci",ULTIMALINEA]
  5582.   Repeat 
  5583.    TASTOPREMUTO$=Inkey$
  5584.   Until TASTOPREMUTO$<>""
  5585.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5586.   If TASTOPREMUTO$="m" Then Proc SCOPODELGIOCO[SCOPODELGIOCO] : SCOPOMODIFICATO=SCOPODELGIOCO
  5587.   If TASTOPREMUTO$=Cup$ Then Add SCOPODELGIOCO,-1,0 To 18
  5588.   If TASTOPREMUTO$=Cdown$ Then Add SCOPODELGIOCO,1,0 To 18
  5589.   AZIONEP(7,0)=SCOPODELGIOCO
  5590.  Until TASTOPREMUTO$=Chr$(27)
  5591.  If SCOPOMODIFICATO=-1
  5592.   AZIONEP(7,0)=VECCHIOSCOPODELGIOCO
  5593.  Else 
  5594.   AZIONEP(7,0)=SCOPOMODIFICATO
  5595.  End If 
  5596.  FINEA(7,0)=False
  5597. End Proc
  5598. Procedure M0DIFICASTANZA
  5599.  If NUMEROE=-1 Then Pop Proc
  5600.  STANZA=0
  5601.  Repeat 
  5602.   Proc MOSTRASTANZA
  5603.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta stanza M modifica Esc esci",ULTIMALINEA]
  5604.   Repeat 
  5605.    TASTOPREMUTO$=Inkey$
  5606.   Until TASTOPREMUTO$<>""
  5607.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5608.   If TASTOPREMUTO$="m" Then Proc M0DSTANZA
  5609.   If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  5610.   If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  5611.  Until TASTOPREMUTO$=Chr$(27)
  5612.  STANZA=0
  5613. End Proc
  5614. Procedure M0DIFICATIPODEILUOGHI
  5615.  Cls 
  5616.  Locate 0,ULTIMALINEA : Input "Luogo di partenza (0-"+Str$(NUMEROL)-" "+") ?>";LUOGODIPARTENZA$;
  5617.  If LUOGODIPARTENZA$<>""
  5618.   LUOGODIPARTENZA=Val(LUOGODIPARTENZA$)
  5619.   Proc LIMITI[LUOGODIPARTENZA,0,NUMEROL] : LUOGODIPARTENZA=Param
  5620.  Else 
  5621.   LUOGODIPARTENZA=0
  5622.  End If 
  5623.  Locate 0,ULTIMALINEA : Input "Luogo di arrivo ("+Str$(LUOGODIPARTENZA+1)-" "+"-"+Str$(NUMEROL)-" "+") ?>";LUOGODIARRIVO$;
  5624.  If LUOGODIARRIVO$<>""
  5625.   LUOGODIARRIVO=Val(LUOGODIARRIVO$)
  5626.   Proc LIMITI[LUOGODIARRIVO,LUOGODIPARTENZA+1,NUMEROL] : LUOGODIARRIVO=Param
  5627.  Else 
  5628.   LUOGODIARRIVO=NUMEROL
  5629.  End If 
  5630.  Curs Off 
  5631.  Repeat 
  5632.   Cls 
  5633.   Print "Nuovo tipo di luogo dei luoghi";LUOGODIPARTENZA;"-";Str$(LUOGODIARRIVO)-" "
  5634.   Print At(0,ULTIMALINEA-1);TIPOL$(TIPOLUOGO)
  5635.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo tipo dei luoghi Spazio conferma Esc esci",ULTIMALINEA]
  5636.   Repeat 
  5637.    TASTOPREMUTO$=Inkey$
  5638.   Until TASTOPREMUTO$<>""
  5639.   If TASTOPREMUTO$=Chr$(27) Then Pop Proc
  5640.   If TASTOPREMUTO$=Cup$ Then Add TIPOLUOGO,-1,0 To 11
  5641.   If TASTOPREMUTO$=Cdown$ Then Add TIPOLUOGO,1,0 To 11
  5642.  Until TASTOPREMUTO$=" "
  5643.  For A=LUOGODIPARTENZA To LUOGODIARRIVO
  5644.   TIPOL(A)=TIPOLUOGO
  5645.  Next A
  5646.  If PARATIPOL(TIPOLUOGO)=0
  5647.   For A=0 To NUMEROP
  5648.    TEMP0DIATTRAVERSAMENTOP(A)=0
  5649.   Next A
  5650.  End If 
  5651. End Proc
  5652. Procedure M0DLUOGO
  5653.  Cls 
  5654.  Print "Nome del luogo";LUOGO;">";NOMEL$(LUOGO)
  5655.  Locate 0,ULTIMALINEA
  5656.  Input "Nuovo nome del luogo"+Str$(LUOGO)+">";NOMELUOGO$;
  5657.  If NOMELUOGO$<>"" Then NOMEL$(LUOGO)=NOMELUOGO$
  5658.  DREZIONE=DREZIONEL(0,LUOGO)
  5659.  Cls 
  5660.  Print "Direzione Nord del luogo";LUOGO;">";
  5661.  E=DREZIONE/$10000
  5662.  If E>0
  5663.   S=DREZIONE mod $10000
  5664.   Print "edificio";E;" stanza";S
  5665.  Else 
  5666.   If DREZIONE<$FFFF
  5667.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5668.   Else 
  5669.    Print " nessuno"
  5670.   End If 
  5671.  End If 
  5672.  Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5673.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5674.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5675.  If NUMEROLUOGO$<>""
  5676.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5677.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5678.    If NUMEROEDIFICIO$<>""
  5679.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5680.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5681.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5682.     If NUMEROSTANZA$<>""
  5683.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5684.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5685.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5686.     End If 
  5687.    End If 
  5688.   Else 
  5689.    If NUMEROLUOGO$="n"
  5690.     DREZIONE=$FFFF
  5691.    Else 
  5692.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5693.    End If 
  5694.   End If 
  5695.   DREZIONEL(0,LUOGO)=DREZIONE
  5696.  End If 
  5697.  DREZIONE=DREZIONEL(1,LUOGO)
  5698.  Cls 
  5699.  Print "Direzione NordEst del luogo";LUOGO;">";
  5700.  E=DREZIONE/$10000
  5701.  If E>0
  5702.   S=DREZIONE mod $10000
  5703.   Print "edificio";E;" stanza";S
  5704.  Else 
  5705.   If DREZIONE<$FFFF
  5706.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5707.   Else 
  5708.    Print " nessuno"
  5709.   End If 
  5710.  End If 
  5711.  Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5712.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5713.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5714.  If NUMEROLUOGO$<>""
  5715.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5716.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5717.    If NUMEROEDIFICIO$<>""
  5718.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5719.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5720.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5721.     If NUMEROSTANZA$<>""
  5722.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5723.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5724.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5725.     End If 
  5726.    End If 
  5727.   Else 
  5728.    If NUMEROLUOGO$="n"
  5729.     DREZIONE=$FFFF
  5730.    Else 
  5731.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5732.    End If 
  5733.   End If 
  5734.   DREZIONEL(1,LUOGO)=DREZIONE
  5735.  End If 
  5736.  DREZIONE=DREZIONEL(2,LUOGO)
  5737.  Cls 
  5738.  Print "Direzione Est del luogo";LUOGO;">";
  5739.  E=DREZIONE/$10000
  5740.  If E>0
  5741.   S=DREZIONE mod $10000
  5742.   Print "edificio";E;" stanza";S
  5743.  Else 
  5744.   If DREZIONE<$FFFF
  5745.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5746.   Else 
  5747.    Print " nessuno"
  5748.   End If 
  5749.  End If 
  5750.  Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5751.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5752.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5753.  If NUMEROLUOGO$<>""
  5754.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5755.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5756.    If NUMEROEDIFICIO$<>""
  5757.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5758.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5759.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5760.     If NUMEROSTANZA$<>""
  5761.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5762.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5763.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5764.     End If 
  5765.    End If 
  5766.   Else 
  5767.    If NUMEROLUOGO$="n"
  5768.     DREZIONE=$FFFF
  5769.    Else 
  5770.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5771.    End If 
  5772.   End If 
  5773.   DREZIONEL(2,LUOGO)=DREZIONE
  5774.  End If 
  5775.  DREZIONE=DREZIONEL(3,LUOGO)
  5776.  Cls 
  5777.  Print "Direzione SudEst del luogo";LUOGO;">";
  5778.  E=DREZIONE/$10000
  5779.  If E>0
  5780.   S=DREZIONE mod $10000
  5781.   Print "edificio";E;" stanza";S
  5782.  Else 
  5783.   If DREZIONE<$FFFF
  5784.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5785.   Else 
  5786.    Print " nessuno"
  5787.   End If 
  5788.  End If 
  5789.  Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5790.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5791.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5792.  If NUMEROLUOGO$<>""
  5793.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5794.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5795.    If NUMEROEDIFICIO$<>""
  5796.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5797.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5798.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5799.     If NUMEROSTANZA$<>""
  5800.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5801.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5802.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5803.     End If 
  5804.    End If 
  5805.   Else 
  5806.    If NUMEROLUOGO$="n"
  5807.     DREZIONE=$FFFF
  5808.    Else 
  5809.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5810.    End If 
  5811.   End If 
  5812.   DREZIONEL(3,LUOGO)=DREZIONE
  5813.  End If 
  5814.  DREZIONE=DREZIONEL(4,LUOGO)
  5815.  Cls 
  5816.  Print "Direzione Sud del luogo";LUOGO;">";
  5817.  E=DREZIONE/$10000
  5818.  If E>0
  5819.   S=DREZIONE mod $10000
  5820.   Print "edificio";E;" stanza";S
  5821.  Else 
  5822.   If DREZIONE<$FFFF
  5823.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5824.   Else 
  5825.    Print " nessuno"
  5826.   End If 
  5827.  End If 
  5828.  Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5829.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5830.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5831.  If NUMEROLUOGO$<>""
  5832.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5833.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5834.    If NUMEROEDIFICIO$<>""
  5835.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5836.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5837.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5838.     If NUMEROSTANZA$<>""
  5839.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5840.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5841.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5842.     End If 
  5843.    End If 
  5844.   Else 
  5845.    If NUMEROLUOGO$="n"
  5846.     DREZIONE=$FFFF
  5847.    Else 
  5848.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5849.    End If 
  5850.   End If 
  5851.   DREZIONEL(4,LUOGO)=DREZIONE
  5852.  End If 
  5853.  DREZIONE=DREZIONEL(5,LUOGO)
  5854.  Cls 
  5855.  Print "Direzione SudOvest del luogo";LUOGO;">";
  5856.  E=DREZIONE/$10000
  5857.  If E>0
  5858.   S=DREZIONE mod $10000
  5859.   Print "edificio";E;" stanza";S
  5860.  Else 
  5861.   If DREZIONE<$FFFF
  5862.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5863.   Else 
  5864.    Print " nessuno"
  5865.   End If 
  5866.  End If 
  5867.  Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5868.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5869.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5870.  If NUMEROLUOGO$<>""
  5871.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5872.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5873.    If NUMEROEDIFICIO$<>""
  5874.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5875.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5876.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5877.     If NUMEROSTANZA$<>""
  5878.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5879.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5880.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5881.     End If 
  5882.    End If 
  5883.   Else 
  5884.    If NUMEROLUOGO$="n"
  5885.     DREZIONE=$FFFF
  5886.    Else 
  5887.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5888.    End If 
  5889.   End If 
  5890.   DREZIONEL(5,LUOGO)=DREZIONE
  5891.  End If 
  5892.  DREZIONE=DREZIONEL(6,LUOGO)
  5893.  Cls 
  5894.  Print "Direzione Ovest del luogo";LUOGO;">";
  5895.  E=DREZIONE/$10000
  5896.  If E>0
  5897.   S=DREZIONE mod $10000
  5898.   Print "edificio";E;" stanza";S
  5899.  Else 
  5900.   If DREZIONE<$FFFF
  5901.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5902.   Else 
  5903.    Print " nessuno"
  5904.   End If 
  5905.  End If 
  5906.  Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5907.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5908.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5909.  If NUMEROLUOGO$<>""
  5910.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5911.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5912.    If NUMEROEDIFICIO$<>""
  5913.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5914.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5915.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5916.     If NUMEROSTANZA$<>""
  5917.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5918.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5919.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5920.     End If 
  5921.    End If 
  5922.   Else 
  5923.    If NUMEROLUOGO$="n"
  5924.     DREZIONE=$FFFF
  5925.    Else 
  5926.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5927.    End If 
  5928.   End If 
  5929.   DREZIONEL(6,LUOGO)=DREZIONE
  5930.  End If 
  5931.  DREZIONE=DREZIONEL(7,LUOGO)
  5932.  Cls 
  5933.  Print "Direzione NordOvest del luogo";LUOGO;">";
  5934.  E=DREZIONE/$10000
  5935.  If E>0
  5936.   S=DREZIONE mod $10000
  5937.   Print "edificio";E;" stanza";S
  5938.  Else 
  5939.   If DREZIONE<$FFFF
  5940.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5941.   Else 
  5942.    Print " nessuno"
  5943.   End If 
  5944.  End If 
  5945.  Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5946.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5947.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5948.  If NUMEROLUOGO$<>""
  5949.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5950.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5951.    If NUMEROEDIFICIO$<>""
  5952.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5953.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5954.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5955.     If NUMEROSTANZA$<>""
  5956.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5957.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5958.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5959.     End If 
  5960.    End If 
  5961.   Else 
  5962.    If NUMEROLUOGO$="n"
  5963.     DREZIONE=$FFFF
  5964.    Else 
  5965.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5966.    End If 
  5967.   End If 
  5968.   DREZIONEL(7,LUOGO)=DREZIONE
  5969.  End If 
  5970.  DREZIONE=DREZIONEL(8,LUOGO)
  5971.  Cls 
  5972.  Print "Direzione Sopra del luogo";LUOGO;">";
  5973.  E=DREZIONE/$10000
  5974.  If E>0
  5975.   S=DREZIONE mod $10000
  5976.   Print "edificio";E;" stanza";S
  5977.  Else 
  5978.   If DREZIONE<$FFFF
  5979.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5980.   Else 
  5981.    Print " nessuno"
  5982.   End If 
  5983.  End If 
  5984.  Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5985.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5986.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5987.  If NUMEROLUOGO$<>""
  5988.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5989.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5990.    If NUMEROEDIFICIO$<>""
  5991.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5992.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5993.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5994.     If NUMEROSTANZA$<>""
  5995.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5996.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5997.      If NUMEROSTANZA=0
  5998.       DREZIONE=NUMEROEDIFICIO*$10000
  5999.      Else 
  6000.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6001.      End If 
  6002.     End If 
  6003.    End If 
  6004.   Else 
  6005.    If NUMEROLUOGO$="n"
  6006.     DREZIONE=$FFFF
  6007.    Else 
  6008.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6009.    End If 
  6010.   End If 
  6011.   DREZIONEL(8,LUOGO)=DREZIONE
  6012.  End If 
  6013.  DREZIONE=DREZIONEL(9,LUOGO)
  6014.  Cls 
  6015.  Print "Direzione Sotto del luogo";LUOGO;">luogo";
  6016.  E=DREZIONE/$10000
  6017.  If E>0
  6018.   S=DREZIONE mod $10000
  6019.   Print "edificio";E;" stanza";S
  6020.  Else 
  6021.   If DREZIONE<$FFFF
  6022.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6023.   Else 
  6024.    Print " nessuno"
  6025.   End If 
  6026.  End If 
  6027.  Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6028.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6029.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6030.  If NUMEROLUOGO$<>""
  6031.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6032.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6033.    If NUMEROEDIFICIO$<>""
  6034.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6035.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6036.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6037.     If NUMEROSTANZA$<>""
  6038.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6039.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6040.      If NUMEROSTANZA=0
  6041.       DREZIONE=NUMEROEDIFICIO*$10000
  6042.      Else 
  6043.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6044.      End If 
  6045.     End If 
  6046.    End If 
  6047.   Else 
  6048.    If NUMEROLUOGO$="n"
  6049.     DREZIONE=$FFFF
  6050.    Else 
  6051.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6052.    End If 
  6053.   End If 
  6054.   DREZIONEL(9,LUOGO)=DREZIONE
  6055.  End If 
  6056.  Cls 
  6057.  Print "Soldi nel luogo";LUOGO;">";Str$(SOLDIL(LUOGO))-" ";" ";
  6058.  If SOLDIL(LUOGO)=1 Then Print "soldo" Else Print "soldi"
  6059.  Locate 0,ULTIMALINEA
  6060.  Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLUOGO$;
  6061.  If SOLDINELLUOGO$<>""
  6062.   SOLDINELLUOGO=Val(SOLDINELLUOGO$)
  6063.   Proc LIMITI[SOLDINELLUOGO,0,65535] : SOLDIL(LUOGO)=Param
  6064.  End If 
  6065.  Curs Off 
  6066.  TIPOLUOGO=TIPOL(LUOGO)
  6067.  Repeat 
  6068.   Cls 
  6069.   Print "Tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOL(LUOGO))
  6070.   Print At(0,ULTIMALINEA-1);"Nuovo tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOLUOGO)
  6071.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo tipo di luogo Spazio conferma",ULTIMALINEA]
  6072.   Repeat 
  6073.    TASTOPREMUTO$=Inkey$
  6074.   Until TASTOPREMUTO$<>""
  6075.   If TASTOPREMUTO$=Cup$ Then Add TIPOLUOGO,-1,0 To 11
  6076.   If TASTOPREMUTO$=Cdown$ Then Add TIPOLUOGO,1,0 To 11
  6077.  Until TASTOPREMUTO$=" "
  6078.  TIPOL(LUOGO)=TIPOLUOGO
  6079. End Proc
  6080. Procedure M0DNUMCO
  6081.  Cls 
  6082.  Print "Numero delle categorie degli oggetti>";Str$(NUMEROCO+1)-" "
  6083.  Locate 0,ULTIMALINEA : Input "Nuovo numero delle categorie degli oggetti (1-"+Str$(NUMMASCO+1)-" "+")>";NUMEROCATEGORIEDEGLIOGGETTI$;
  6084.  If NUMEROCATEGORIEDEGLIOGGETTI$<>""
  6085.   NUMEROCATEGORIEDEGLIOGGETTI=Val(NUMEROCATEGORIEDEGLIOGGETTI$)
  6086.   Dec NUMEROCATEGORIEDEGLIOGGETTI
  6087.   Proc LIMITI[NUMEROCATEGORIEDEGLIOGGETTI,0,NUMMASCO] : NUMEROCO=Param
  6088.  End If 
  6089.  Curs Off 
  6090. End Proc
  6091. Procedure M0DNUME
  6092.  Cls 
  6093.  Print "Numero degli edifici>";Str$(NUMEROE+1)-" "
  6094.  Locate 0,ULTIMALINEA : Input "Nuovo numero degli edifici (0-"+Str$(NUMMASE+1)-" "+")>";NUMEROEDIFICI$;
  6095.  If NUMEROEDIFICI$<>""
  6096.   NUMEROEDIFICI=Val(NUMEROEDIFICI$) : Dec NUMEROEDIFICI
  6097.   Proc LIMITI[NUMEROEDIFICI,-1,NUMMASE] : NUMEROE=Param
  6098.   If NUMEROE=-1
  6099.    EDIFICIO=NUMEROE
  6100.   End If 
  6101.  End If 
  6102.  Curs Off 
  6103. End Proc
  6104. Procedure M0DNUML
  6105.  Cls 
  6106.  Print "Numero dei luoghi>";Str$(NUMEROL+1)-" "
  6107.  Locate 0,ULTIMALINEA : Input "Nuovo numero dei luoghi (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROLUOGHI$;
  6108.  If NUMEROLUOGHI$<>""
  6109.   NUMEROLUOGHI=Val(NUMEROLUOGHI$) : Dec NUMEROLUOGHI
  6110.   Proc LIMITI[NUMEROLUOGHI,0,NUMMASL] : NUMEROL=Param
  6111.  End If 
  6112.  Curs Off 
  6113. End Proc
  6114. Procedure M0DNUMO
  6115.  Cls 
  6116.  Print "Numero degli oggetti>";Str$(NUMEROO+1)-" "
  6117.  Locate 0,ULTIMALINEA : Input "Nuovo numero degli oggetti (1-"+Str$(NUMMASO+1)-" "+")>";NUMEROOGGETTI$;
  6118.  If NUMEROOGGETTI$<>""
  6119.   NUMEROOGGETTI=Val(NUMEROOGGETTI$) : Dec NUMEROOGGETTI
  6120.   Proc LIMITI[NUMEROOGGETTI,0,NUMMASO] : NUMEROO=Param
  6121.  End If 
  6122.  Curs Off 
  6123. End Proc
  6124. Procedure M0DNUMP
  6125.  Cls 
  6126.  Print "Numero dei personaggi>";Str$(NUMEROP+1)-" "
  6127.  Locate 0,ULTIMALINEA : Input "Nuovo numero dei personaggi (1-"+Str$(NUMMASP+1)-" "+")>";NUMEROPERSONAGGI$;
  6128.  If NUMEROPERSONAGGI$<>""
  6129.   NUMEROPERSONAGGI=Val(NUMEROPERSONAGGI$) : Dec NUMEROPERSONAGGI
  6130.   Proc LIMITI[NUMEROPERSONAGGI,0,NUMMASL] : NUMEROP=Param
  6131.  End If 
  6132.  Curs Off 
  6133. End Proc
  6134. Procedure M0DNUMR
  6135.  Cls 
  6136.  Print "Numero delle regioni>";Str$(NUMEROR+1)-" "
  6137.  Locate 0,ULTIMALINEA : Input "Nuovo numero delle regioni (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROREGIONI$;
  6138.  If NUMEROREGIONI$<>""
  6139.   NUMEROREGIONI=Val(NUMEROREGIONI$) : Dec NUMEROREGIONI
  6140.   Proc LIMITI[NUMEROREGIONI,0,NUMMASL] : NUMEROR=Param
  6141.  End If 
  6142.  Curs Off 
  6143. End Proc
  6144. Procedure M0DNUMS
  6145.  Cls 
  6146.  Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  6147.  Locate 0,ULTIMALINEA : Input "Nuovo numero delle stanze (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  6148.  If NUMEROSTANZE$<>""
  6149.   NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  6150.   Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROS(EDIFICIO)=Param
  6151.  End If 
  6152.  Curs Off 
  6153. End Proc
  6154. Procedure M0DOGGETTO
  6155.  CO=CATEGORIAO(OGGETTO)
  6156.  Repeat 
  6157.   Cls 
  6158.   Print "Nome dell'oggetto";OGGETTO;">";
  6159.   If Btst(1,TIPOO(OGGETTO))=True
  6160.    Print NOMESRO$(CATEGORIAO(OGGETTO))
  6161.   Else 
  6162.    Print NOMESCO$(CATEGORIAO(OGGETTO))
  6163.   End If 
  6164.   Print At(0,ULTIMALINEA-1);"Nuovo nome dell'oggetto";OGGETTO;">";
  6165.   If Btst(1,TIPOO(OGGETTO))=True
  6166.    Print NOMESRO$(CO);
  6167.   Else 
  6168.    Print NOMESCO$(CO);
  6169.   End If 
  6170.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo nome Spazio conferma",ULTIMALINEA]
  6171.   Repeat 
  6172.    TASTOPREMUTO$=Inkey$
  6173.   Until TASTOPREMUTO$<>""
  6174.   If TASTOPREMUTO$=Cup$ Then Add CO,-1,0 To NUMEROCO
  6175.   If TASTOPREMUTO$=Cdown$ Then Add CO,1,0 To NUMEROCO
  6176.  Until TASTOPREMUTO$=" "
  6177.  CATEGORIAO(OGGETTO)=CO
  6178.  Cls 
  6179.  Print "Nome dell'oggetto";OGGETTO;">";
  6180.  If Btst(1,TIPOO(OGGETTO))=True
  6181.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6182.  Else 
  6183.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6184.  End If 
  6185.  Print "Posizione dell'oggetto";OGGETTO;">";
  6186.  If POSIZIONEO(OGGETTO)<0
  6187.   SOGGETTO= Not POSIZIONEO(OGGETTO)
  6188.   If Btst(0,TIPOO(OGGETTO))=True
  6189.    Print "posseduto dal personaggio";SOGGETTO;
  6190.    Print " nome>";NOMEP$(SOGGETTO)
  6191.    If POSIZIONEO(OGGETTO)=-1
  6192.     POSSEDUTODALPERSONAGGIO0=True
  6193.    End If 
  6194.   Else 
  6195.    Print "contenuto nell'oggetto";SOGGETTO;
  6196.    Print " nome>";NOMESCO$(CATEGORIAO(SOGGETTO))
  6197.   End If 
  6198.  Else 
  6199.   E=POSIZIONEO(OGGETTO)/$10000
  6200.   If E>0
  6201.    Print "Edificio";E;" nome>";NOMEE$(E-1)
  6202.    S=POSIZIONEO(OGGETTO) mod $10000
  6203.    Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6204.   Else 
  6205.    Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  6206.   End If 
  6207.  End If 
  6208.  Print At(0,ULTIMALINEA-1);"Luogo dell'oggetto (0-";
  6209.  Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6210.  Locate 0,ULTIMALINEA : Input "Nuovo luogo dell'oggetto>";NUMEROLUOGO$;
  6211.  If NUMEROLUOGO$<>""
  6212.   NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6213.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6214.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6215.    If NUMEROEDIFICIO$<>""
  6216.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6217.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6218.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6219.     If NUMEROSTANZA$<>""
  6220.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6221.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6222.      POSIZIONEO(OGGETTO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6223.     End If 
  6224.    End If 
  6225.   Else If NUMEROLUOGO$="o"
  6226.    Print At(0,ULTIMALINEA-1);"Oggetto che contiene l'oggetto";OGGETTO;
  6227.    Print " (0-";Str$(NUMEROO)-" ";")             ";
  6228.    Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6229.    If NUMEROOGGETTO$<>""
  6230.     NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6231.     Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6232.     If NUMEROOGGETTO=OGGETTO
  6233.      Curs Off 
  6234.      Print At(0,ULTIMALINEA);"L'oggetto non pu� contenere s� stesso";
  6235.      Proc _ASPETTA
  6236.     Else 
  6237.      If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6238.       POSIZIONEO(OGGETTO)= Not NUMEROOGGETTO : Bclr 0,TIPOO(OGGETTO)
  6239.      Else 
  6240.       Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6241.       Proc _ASPETTA
  6242.      End If 
  6243.     End If 
  6244.    End If 
  6245.   Else If NUMEROLUOGO$="p"
  6246.    Locate 0,ULTIMALINEA-1 : Cline : Print "Personaggio che possiede l'oggetto (0-";
  6247.    Print Str$(NUMEROP)-" ";")"
  6248.    Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6249.    If NUMEROPERSONAGGIO$<>""
  6250.     NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6251.     Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6252.     POSIZIONEO(OGGETTO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOO(OGGETTO)
  6253.     If Btst(1,TIPOO(OGGETTO))=True
  6254.      Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(OGGETTO))
  6255.     Else 
  6256.      Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(OGGETTO))
  6257.     End If 
  6258.     If NUMEROPERSONAGGIO=0
  6259.      If Btst(1,TIPOO(OGGETTO))=True
  6260.       Inc RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6261.      Else 
  6262.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6263.      End If 
  6264.     End If 
  6265.     If Btst(1,TIPOCO(CATEGORIAO(OGGETTO)))=True
  6266.      For A=0 To NUMEROO
  6267.       If POSIZIONEO(A)=-1-OGGETTO and Btst(0,TIPOO(A))=False
  6268.        If Btst(1,TIPOO(A))=True
  6269.         Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(A))
  6270.        Else 
  6271.         Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(A))
  6272.        End If 
  6273.       End If 
  6274.      Next A
  6275.      For A=0 To NUMEROP
  6276.       If POSIZIONEP(A)=-1-OGGETTO and Btst(0,TIPOP(A))=False
  6277.        Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(A)
  6278.        Add PESONETTOP(NUMEROPERSONAGGIO),PESONETTOP(A)
  6279.       End If 
  6280.      Next A
  6281.     End If 
  6282.    End If 
  6283.   Else 
  6284.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6285.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEO(OGGETTO)=Param
  6286.   End If 
  6287.   If POSSEDUTODALPERSONAGGIO0=True
  6288.    If Btst(1,TIPOO(OGGETTO))=True
  6289.     Dec RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6290.    Else 
  6291.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6292.    End If 
  6293.   End If 
  6294.  End If 
  6295.  Curs Off 
  6296.  If POSIZIONEO(OGGETTO)>0 or Btst(0,TIPOO(OGGETTO))=False or Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=False or Btst(2,TIPOO(OGGETTO))=False
  6297.   Cls 
  6298.   Print "Nome dell'oggetto";OGGETTO;">";
  6299.   If Btst(1,TIPOO(OGGETTO))=True
  6300.    Print NOMESRO$(CATEGORIAO(OGGETTO))
  6301.   Else 
  6302.    Print NOMESCO$(CATEGORIAO(OGGETTO))
  6303.   End If 
  6304.   Print At(0,ULTIMALINEA);"Vuoi che l'oggetto sia un resto di oggetto (s/n) ?>";
  6305.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6306.   If RISPOSTA$="s"
  6307.    If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6308.     If Btst(1,TIPOO(OGGETTO))=False
  6309.      Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6310.      Inc RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6311.     End If 
  6312.    End If 
  6313.    Bset 1,TIPOO(OGGETTO)
  6314.   Else 
  6315.    If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6316.     If Btst(1,TIPOO(OGGETTO))=True
  6317.      Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6318.      Dec RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6319.     End If 
  6320.    End If 
  6321.    Bclr 1,TIPOO(OGGETTO)
  6322.   End If 
  6323.  End If 
  6324.  If POSIZIONEO(OGGETTO)<0 and Btst(0,TIPOO(OGGETTO))=True and Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=True and Btst(1,TIPOO(OGGETTO))=False
  6325.   Cls 
  6326.   Print "Nome dell'oggetto";OGGETTO;">";NOMESCO$(CATEGORIAO(OGGETTO))
  6327.   Print At(0,ULTIMALINEA);"Vuoi che l'oggetto difensivo sia indossato (s/n) ?>";
  6328.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6329.   If RISPOSTA$="s"
  6330.    Bset 2,TIPOO(OGGETTO)
  6331.   Else 
  6332.    Bclr 2,TIPOO(OGGETTO)
  6333.   End If 
  6334.  End If 
  6335.  Locate 0,ULTIMALINEA : Cline 
  6336.  Print "Vuoi che l'oggetto sia nascosto (s/n) ?>";
  6337.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6338.  If RISPOSTA$="s"
  6339.   Bset 3,TIPOO(OGGETTO)
  6340.  Else 
  6341.   Bclr 3,TIPOO(OGGETTO)
  6342.  End If 
  6343. End Proc
  6344. Procedure M0DPERSONAGGIO
  6345.  Cls 
  6346.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6347.  Locate 0,ULTIMALINEA : Input "Nuovo nome del personaggio"+Str$(PERSONAGGIO)+">";NOMEPERSONAGGIO$;
  6348.  If NOMEPERSONAGGIO$<>"" Then NOMEP$(PERSONAGGIO)=NOMEPERSONAGGIO$
  6349.  Cls 
  6350.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6351.  Print "Posizione del personaggio";PERSONAGGIO;">";
  6352.  If POSIZIONEP(PERSONAGGIO)<0
  6353.   SOGGETTO= Not POSIZIONEP(PERSONAGGIO)
  6354.   If Btst(0,TIPOP(PERSONAGGIO))=True
  6355.    Print "trasportato dal personaggio";SOGGETTO;
  6356.    Print " di nome ";NOMEP$(SOGGETTO)
  6357.   Else 
  6358.    Print "contenuto nell'oggetto";SOGGETTO;
  6359.    Print " di nome ";NOMESCO$(CATEGORIAO(SOGGETTO))
  6360.   End If 
  6361.  Else 
  6362.   E=POSIZIONEP(PERSONAGGIO)/$10000
  6363.   If E>0
  6364.    Print "Edificio";E;" nome>";NOMEE$(E-1)
  6365.    S=POSIZIONEP(PERSONAGGIO) mod $10000
  6366.    Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6367.   Else 
  6368.    Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  6369.   End If 
  6370.  End If 
  6371.  If PERSONAGGIO=0
  6372.   Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";Str$(NUMEROL)-" ";" E=Edificio)";
  6373.   Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6374.   If NUMEROLUOGO$<>""
  6375.    If NUMEROLUOGO$="e" and NUMEROE>-1
  6376.     Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  6377.     If NUMEROEDIFICIO$<>""
  6378.      NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6379.      Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  6380.      Locate 0,ULTIMALINEA : Input "Quale stanza (0-"+Str$(NUMEROS(NUMEROEDIFICIO))-" "+") ?>";NUMEROSTANZA$;
  6381.      If NUMEROSTANZA$<>""
  6382.       NUMEROSTANZA=Val(NUMEROSTANZA$)
  6383.       Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6384.       POSIZIONEP(PERSONAGGIO)=(NUMEROEDIFICIO+1)*$10000+NUMEROSTANZA
  6385.      End If 
  6386.     End If 
  6387.    Else 
  6388.     NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6389.     NUMEROLUOGO=Val(NUMEROLUOGO$)
  6390.     Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6391.     LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6392.     TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6393.     DREZIONEPRESAP(PERSONAGGIO)=-1
  6394.     DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6395.    End If 
  6396.   End If 
  6397.  Else 
  6398.   Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";
  6399.   Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6400.   Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6401.   If NUMEROLUOGO$<>""
  6402.    NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6403.    If NUMEROLUOGO$="e" and NUMEROE>-1
  6404.     Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6405.     If NUMEROEDIFICIO$<>""
  6406.      NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6407.      Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6408.      Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6409.      If NUMEROSTANZA$<>""
  6410.       NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6411.       Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6412.       POSIZIONEP(PERSONAGGIO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6413.      End If 
  6414.     End If 
  6415.    Else If NUMEROLUOGO$="o"
  6416.     Print At(0,ULTIMALINEA-1);"Oggetto che contiene il personaggio (0-";
  6417.     Print Str$(NUMEROO)-" ";")             ";
  6418.     Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6419.     If NUMEROOGGETTO$<>""
  6420.      NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6421.      Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6422.      If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6423.       POSIZIONEP(PERSONAGGIO)= Not NUMEROOGGETTO : Bclr 0,TIPOP(PERSONAGGIO)
  6424.      Else 
  6425.       Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6426.       Proc _ASPETTA
  6427.      End If 
  6428.     End If 
  6429.    Else If NUMEROLUOGO$="p"
  6430.     Print At(0,ULTIMALINEA-1);"Personaggio che trasporta il personaggio";PERSONAGGIO;
  6431.     Print " (0-";Str$(NUMEROP)-" ";")    ";
  6432.     Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6433.     If NUMEROPERSONAGGIO$<>""
  6434.      NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6435.      Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6436.      If NUMEROPERSONAGGIO=PERSONAGGIO
  6437.       Curs Off 
  6438.       Print At(0,ULTIMALINEA);"Il personaggio non pu� trasportare s� stesso";
  6439.       Proc _ASPETTA
  6440.      Else 
  6441.       POSIZIONEP(PERSONAGGIO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOP(PERSONAGGIO)
  6442.       Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(PERSONAGGIO)*1000
  6443.      End If 
  6444.     End If 
  6445.    Else 
  6446.     NUMEROLUOGO=Val(NUMEROLUOGO$)
  6447.     Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6448.     LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6449.     TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6450.     DREZIONEPRESAP(PERSONAGGIO)=-1
  6451.     DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6452.    End If 
  6453.   End If 
  6454.  End If 
  6455.  Curs Off 
  6456.  Cls 
  6457.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6458.  Print "Costituzione del personaggio";PERSONAGGIO;">";
  6459.  Print Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  6460.  If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6461.  Locate 0,ULTIMALINEA
  6462.  Input "Nuova costituzione del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";C0STITUZIONEPERSONAGGIO$;
  6463.  If C0STITUZIONEPERSONAGGIO$<>""
  6464.   C0STITUZIONEPERSONAGGIO=Val(C0STITUZIONEPERSONAGGIO$)
  6465.   LIMITI[C0STITUZIONEPERSONAGGIO,1,65536]
  6466.   C0STITUZIONEP(PERSONAGGIO)=Param
  6467.  End If 
  6468.  Cls 
  6469.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6470.  Print "Forza del personaggio";PERSONAGGIO;">";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  6471.  If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6472.  Locate 0,ULTIMALINEA
  6473.  Input "Nuova forza del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";F0RZAPERSONAGGIO$;
  6474.  If F0RZAPERSONAGGIO$<>""
  6475.   F0RZAPERSONAGGIO=Val(F0RZAPERSONAGGIO$)
  6476.   LIMITI[F0RZAPERSONAGGIO,1,65536] : F0RZAP(PERSONAGGIO)=Param
  6477.  End If 
  6478.  Cls 
  6479.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6480.  Print "Peso del personaggio";PERSONAGGIO;">";Str$(PESOP(PERSONAGGIO))-" ";" ";
  6481.  If PESOP(PERSONAGGIO)=1 Then Print "chilo" Else Print "chili"
  6482.  Locate 0,ULTIMALINEA
  6483.  Input "Nuovo peso del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";PESOPERSONAGGIO$;
  6484.  If PESOPERSONAGGIO$<>""
  6485.   PESOPERSONAGGIO=Val(PESOPERSONAGGIO$) : PESOPRECEDENTE=PESOP(PERSONAGGIO)
  6486.   LIMITI[PESOPERSONAGGIO,1,65536] : PESOP(PERSONAGGIO)=Param
  6487.   For A=0 To NUMEROP
  6488.    If POSIZIONEP(PERSONAGGIO)=-1-A and Btst(0,TIPOP(PERSONAGGIO))=True
  6489.     Add PESONETTOP(A),-PESOPRECEDENTE*1000
  6490.     Add PESONETTOP(A),PESOP(PERSONAGGIO)*1000
  6491.    End If 
  6492.   Next A
  6493.  End If 
  6494.  Cls 
  6495.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6496.  Print "Resistenza del personaggio";PERSONAGGIO;">";
  6497.  Print Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  6498.  If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6499.  Locate 0,ULTIMALINEA
  6500.  Input "Nuova resistenza del personaggio"+Str$(PERSONAGGIO)+" (0-"+Str$(C0STITUZIONEP(PERSONAGGIO))-" "+")>";RESISTENZAPERSONAGGIO$;
  6501.  If RESISTENZAPERSONAGGIO$<>""
  6502.   RESISTENZAPERSONAGGIO=Val(RESISTENZAPERSONAGGIO$)
  6503.   LIMITI[RESISTENZAPERSONAGGIO,0,C0STITUZIONEP(PERSONAGGIO)]
  6504.   RESISTENZAP(PERSONAGGIO)=Param
  6505.   If RESISTENZAP(PERSONAGGIO)=0
  6506.    For A=0 To NUMEROO
  6507.     If POSIZIONEO(A)=-1-PERSONAGGIO and Btst(0,TIPOO(A))=True
  6508.      POSIZIONEO(A)=POSIZIONEP(PERSONAGGIO)
  6509.      If Btst(1,TIPOO(A))=True
  6510.       Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(A))
  6511.      Else 
  6512.       Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(A))
  6513.      End If 
  6514.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  6515.       For B=0 To NUMEROO
  6516.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  6517.         If Btst(1,TIPOO(B))=True
  6518.          Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(B))
  6519.         Else 
  6520.          Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(B))
  6521.         End If 
  6522.        End If 
  6523.       Next B
  6524.       For B=1 To NUMEROP
  6525.        If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  6526.         Add PESONETTOP(PERSONAGGIO),-PESOP(B)*1000
  6527.         Add PESONETTOP(PERSONAGGIO),-PESONETTOP(B)
  6528.        End If 
  6529.       Next B
  6530.      End If 
  6531.     End If 
  6532.    Next A
  6533.    Add SOLDIL(POSIZIONEP(PERSONAGGIO)),SOLDIP(PERSONAGGIO)
  6534.    Add PESONETTOP(PERSONAGGIO),-SOLDIP(PERSONAGGIO)*PESOS
  6535.    SOLDIP(PERSONAGGIO)=0
  6536.   End If 
  6537.  End If 
  6538.  Cls 
  6539.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6540.  Print "Sesso del personaggio";PERSONAGGIO;">";
  6541.  If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  6542.  Locate 0,ULTIMALINEA
  6543.  Input "Nuovo sesso del personaggio"+Str$(PERSONAGGIO)+" (M=maschile F=femminile)>";SESSOPERSONAGGIO$;
  6544.  SESSOPERSONAGGIO$=Lower$(Left$(SESSOPERSONAGGIO$,1))
  6545.  If SESSOPERSONAGGIO$<>""
  6546.   If SESSOPERSONAGGIO$="f"
  6547.    Bset 1,TIPOP(PERSONAGGIO)
  6548.   End If 
  6549.   If SESSOPERSONAGGIO$="m"
  6550.    Bclr 1,TIPOP(PERSONAGGIO)
  6551.   End If 
  6552.  End If 
  6553.  If PERSONAGGIO>0
  6554.   Cls 
  6555.   Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6556.   Print "Condizione del personaggio";PERSONAGGIO;">";
  6557.   If Btst(3,TIPOP(PERSONAGGIO))=True
  6558.    Print "Nemic";
  6559.   Else 
  6560.    Print "Amic";
  6561.   End If 
  6562.   If Btst(1,TIPOP(PERSONAGGIO))=True
  6563.    Print "a"
  6564.   Else 
  6565.    Print "o"
  6566.   End If 
  6567.   Locate 0,ULTIMALINEA
  6568.   Input "Nuova condizione del personaggio"+Str$(PERSONAGGIO)+" (A=amico/a N=nemico/a)>";CONDIZIONEPERSONAGGIO$;
  6569.   CONDIZIONEPERSONAGGIO$=Lower$(Left$(CONDIZIONEPERSONAGGIO$,1))
  6570.   If CONDIZIONEPERSONAGGIO$<>""
  6571.    If CONDIZIONEPERSONAGGIO$="n"
  6572.     Bset 3,TIPOP(PERSONAGGIO)
  6573.    End If 
  6574.    If CONDIZIONEPERSONAGGIO$="a"
  6575.     Bclr 3,TIPOP(PERSONAGGIO)
  6576.    End If 
  6577.   End If 
  6578.  End If 
  6579.  SOLDIPRECEDENTI=SOLDIP(PERSONAGGIO)
  6580.  Cls 
  6581.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6582.  Print "Soldi del personaggio";PERSONAGGIO;">";Str$(SOLDIPRECEDENTI)-" ";" ";
  6583.  If SOLDIPRECEDENTI=1 Then Print "soldo" Else Print "soldi"
  6584.  Locate 0,ULTIMALINEA
  6585.  Input "Nuovi soldi del personaggio"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDIPERSONAGGIO$;
  6586.  If SOLDIPERSONAGGIO$<>""
  6587.   SOLDIPERSONAGGIO=Val(SOLDIPERSONAGGIO$)
  6588.   Proc LIMITI[SOLDIPERSONAGGIO,0,65535] : SOLDIP(PERSONAGGIO)=Param
  6589.   If SOLDIPERSONAGGIO>0
  6590.    Add PESONETTOP(PERSONAGGIO),-SOLDIPRECEDENTI*PESOS
  6591.    Add PESONETTOP(PERSONAGGIO),SOLDIPERSONAGGIO*PESOS
  6592.   End If 
  6593.  End If 
  6594.  If PERSONAGGIO>0
  6595.   Cls 
  6596.   Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6597.   Print "Inizio sonno del personaggio>";PERSONAGGIO;">";
  6598.   _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  6599.   Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  6600.   M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  6601.   Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  6602.   Locate 0,ULTIMALINEA
  6603.   Input "Ore del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-23)>";INIZIOSONNOPERSONAGGIO$;
  6604.   If INIZIOSONNOPERSONAGGIO$<>""
  6605.    INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6606.    Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,23] : INIZIOSONNOP(PERSONAGGIO)=Param*60
  6607.    Locate 0,ULTIMALINEA
  6608.    Input "Minuti del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-59)>";INIZIOSONNOPERSONAGGIO$;
  6609.    If INIZIOSONNOPERSONAGGIO$<>""
  6610.     INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6611.     Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,59] : Add INIZIOSONNOP(PERSONAGGIO),Param
  6612.    End If 
  6613.   End If 
  6614.   Curs Off 
  6615.   For A=0 To 7
  6616.    Cls 
  6617.    Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6618.    AZIONE=AZIONEP(A,PERSONAGGIO)
  6619.    PARA=PARAAAZIONEP(A,PERSONAGGIO)
  6620.    PARB=PARABAZIONEP(A,PERSONAGGIO)
  6621.    PARC=PARACAZIONEP(A,PERSONAGGIO)
  6622.    Print "Azione";A+1;">";
  6623.    Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6624.    Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuova azione Spazio conferma",ULTIMALINEA]
  6625.    Repeat 
  6626.     Print At(0,ULTIMALINEA-2); : Cline : Print : Cline : Cmove ,-1
  6627.     Print "azione";A+1;">";
  6628.     Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6629.     Repeat 
  6630.      TASTOPREMUTO$=Inkey$
  6631.     Until TASTOPREMUTO$<>""
  6632.     If TASTOPREMUTO$=Cup$
  6633.      Add AZIONE,-1,1 To 41
  6634.     End If 
  6635.     If TASTOPREMUTO$=Cdown$
  6636.      Add AZIONE,1,1 To 41
  6637.     End If 
  6638.    Until TASTOPREMUTO$=" "
  6639.    AZIONEP(A,PERSONAGGIO)=AZIONE
  6640.    Proc TIC["Vuoi modificare i parametri dell'azione (s/n) ?",ULTIMALINEA]
  6641.    RISPOSTA$=Input$(1)
  6642.    If RISPOSTA$="s"
  6643.     Proc INSERISCIPARAMETRIAZIONE[AZIONE,A,PERSONAGGIO]
  6644.     Curs Off 
  6645.    End If 
  6646.   Next A
  6647.  End If 
  6648.  Curs Off 
  6649. End Proc
  6650. Procedure M0DREGIONE
  6651.  Cls 
  6652.  Print "Nome della regione";REGIONE;">";NOMER$(REGIONE)
  6653.  Locate 0,ULTIMALINEA : Input "Nuovo nome della regione"+Str$(REGIONE)+">";NOMEREGIONE$;
  6654.  If NOMEREGIONE$<>"" Then NOMER$(REGIONE)=NOMEREGIONE$
  6655.  Curs Off 
  6656. End Proc
  6657. Procedure M0DSTANZA
  6658.  Cls 
  6659.  Print "Nome della stanza";STANZA;">";NOMES$(STANZA,EDIFICIO)
  6660.  Locate 0,ULTIMALINEA
  6661.  Input "Nuovo nome della stanza"+Str$(LUOGO)+">";NOMESTANZA$;
  6662.  If NOMESTANZA$<>"" Then NOMES$(STANZA,EDIFICIO)=NOMESTANZA$
  6663.  DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  6664.  Cls 
  6665.  Print "Direzione Nord della stanza";STANZA;">";
  6666.  E=DREZIONE/$10000
  6667.  If E>0
  6668.   S=DREZIONE mod $10000
  6669.   Print "edificio";E;" stanza";S
  6670.  Else 
  6671.   If DREZIONE<$FFFF
  6672.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6673.   Else 
  6674.    Print " nessuno"
  6675.   End If 
  6676.  End If 
  6677.  Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6678.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6679.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6680.  If NUMEROLUOGO$<>""
  6681.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6682.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6683.    If NUMEROEDIFICIO$<>""
  6684.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6685.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6686.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6687.     If NUMEROSTANZA$<>""
  6688.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6689.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6690.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6691.     End If 
  6692.    End If 
  6693.   Else 
  6694.    If NUMEROLUOGO$="n"
  6695.     DREZIONE=$FFFF
  6696.    Else 
  6697.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6698.    End If 
  6699.   End If 
  6700.   DREZIONES(0,STANZA,EDIFICIO)=DREZIONE
  6701.  End If 
  6702.  DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  6703.  Cls 
  6704.  Print "Direzione NordEst della stanza";STANZA;">";
  6705.  E=DREZIONE/$10000
  6706.  If E>0
  6707.   S=DREZIONE mod $10000
  6708.   Print "edificio";E;" stanza";S
  6709.  Else 
  6710.   If DREZIONE<$FFFF
  6711.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6712.   Else 
  6713.    Print " nessuno"
  6714.   End If 
  6715.  End If 
  6716.  Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6717.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6718.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6719.  If NUMEROLUOGO$<>""
  6720.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6721.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6722.    If NUMEROEDIFICIO$<>""
  6723.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6724.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6725.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6726.     If NUMEROSTANZA$<>""
  6727.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6728.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6729.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6730.     End If 
  6731.    End If 
  6732.   Else 
  6733.    If NUMEROLUOGO$="n"
  6734.     DREZIONE=$FFFF
  6735.    Else 
  6736.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6737.    End If 
  6738.   End If 
  6739.   DREZIONES(1,STANZA,EDIFICIO)=DREZIONE
  6740.  End If 
  6741.  DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  6742.  Cls 
  6743.  Print "Direzione Est della stanza";STANZA;">";
  6744.  E=DREZIONE/$10000
  6745.  If E>0
  6746.   S=DREZIONE mod $10000
  6747.   Print "edificio";E;" stanza";S
  6748.  Else 
  6749.   If DREZIONE<$FFFF
  6750.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6751.   Else 
  6752.    Print " nessuno"
  6753.   End If 
  6754.  End If 
  6755.  Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6756.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6757.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6758.  If NUMEROLUOGO$<>""
  6759.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6760.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6761.    If NUMEROEDIFICIO$<>""
  6762.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6763.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6764.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6765.     If NUMEROSTANZA$<>""
  6766.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6767.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6768.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6769.     End If 
  6770.    End If 
  6771.   Else 
  6772.    If NUMEROLUOGO$="n"
  6773.     DREZIONE=$FFFF
  6774.    Else 
  6775.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6776.    End If 
  6777.   End If 
  6778.   DREZIONES(2,STANZA,EDIFICIO)=DREZIONE
  6779.  End If 
  6780.  DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  6781.  Cls 
  6782.  Print "Direzione SudEst della stanza";STANZA;">";
  6783.  E=DREZIONE/$10000
  6784.  If E>0
  6785.   S=DREZIONE mod $10000
  6786.   Print "edificio";E;" stanza";S
  6787.  Else 
  6788.   If DREZIONE<$FFFF
  6789.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6790.   Else 
  6791.    Print " nessuno"
  6792.   End If 
  6793.  End If 
  6794.  Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6795.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6796.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6797.  If NUMEROLUOGO$<>""
  6798.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6799.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6800.    If NUMEROEDIFICIO$<>""
  6801.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6802.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6803.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6804.     If NUMEROSTANZA$<>""
  6805.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6806.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6807.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6808.     End If 
  6809.    End If 
  6810.   Else 
  6811.    If NUMEROLUOGO$="n"
  6812.     DREZIONE=$FFFF
  6813.    Else 
  6814.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6815.    End If 
  6816.   End If 
  6817.   DREZIONES(3,STANZA,EDIFICIO)=DREZIONE
  6818.  End If 
  6819.  DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  6820.  Cls 
  6821.  Print "Direzione Sud della stanza";STANZA;">";
  6822.  E=DREZIONE/$10000
  6823.  If E>0
  6824.   S=DREZIONE mod $10000
  6825.   Print "edificio";E;" stanza";S
  6826.  Else 
  6827.   If DREZIONE<$FFFF
  6828.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6829.   Else 
  6830.    Print " nessuno"
  6831.   End If 
  6832.  End If 
  6833.  Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6834.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6835.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6836.  If NUMEROLUOGO$<>""
  6837.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6838.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6839.    If NUMEROEDIFICIO$<>""
  6840.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6841.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6842.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6843.     If NUMEROSTANZA$<>""
  6844.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6845.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6846.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6847.     End If 
  6848.    End If 
  6849.   Else 
  6850.    If NUMEROLUOGO$="n"
  6851.     DREZIONE=$FFFF
  6852.    Else 
  6853.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6854.    End If 
  6855.   End If 
  6856.   DREZIONES(4,STANZA,EDIFICIO)=DREZIONE
  6857.  End If 
  6858.  DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  6859.  Cls 
  6860.  Print "Direzione SudOvest della stanza";STANZA;">";
  6861.  E=DREZIONE/$10000
  6862.  If E>0
  6863.   S=DREZIONE mod $10000
  6864.   Print "edificio";E;" stanza";S
  6865.  Else 
  6866.   If DREZIONE<$FFFF
  6867.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6868.   Else 
  6869.    Print " nessuno"
  6870.   End If 
  6871.  End If 
  6872.  Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6873.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6874.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6875.  If NUMEROLUOGO$<>""
  6876.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6877.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6878.    If NUMEROEDIFICIO$<>""
  6879.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6880.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6881.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6882.     If NUMEROSTANZA$<>""
  6883.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6884.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6885.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6886.     End If 
  6887.    End If 
  6888.   Else 
  6889.    If NUMEROLUOGO$="n"
  6890.     DREZIONE=$FFFF
  6891.    Else 
  6892.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6893.    End If 
  6894.   End If 
  6895.   DREZIONES(5,STANZA,EDIFICIO)=DREZIONE
  6896.  End If 
  6897.  DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  6898.  Cls 
  6899.  Print "Direzione Ovest della stanza";STANZA;">";
  6900.  E=DREZIONE/$10000
  6901.  If E>0
  6902.   S=DREZIONE mod $10000
  6903.   Print "edificio";E;" stanza";S
  6904.  Else 
  6905.   If DREZIONE<$FFFF
  6906.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6907.   Else 
  6908.    Print " nessuno"
  6909.   End If 
  6910.  End If 
  6911.  Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6912.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6913.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6914.  If NUMEROLUOGO$<>""
  6915.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6916.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6917.    If NUMEROEDIFICIO$<>""
  6918.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6919.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6920.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6921.     If NUMEROSTANZA$<>""
  6922.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6923.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6924.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6925.     End If 
  6926.    End If 
  6927.   Else 
  6928.    If NUMEROLUOGO$="n"
  6929.     DREZIONE=$FFFF
  6930.    Else 
  6931.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6932.    End If 
  6933.   End If 
  6934.   DREZIONES(6,STANZA,EDIFICIO)=DREZIONE
  6935.  End If 
  6936.  DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  6937.  Cls 
  6938.  Print "Direzione NordOvest della stanza";STANZA;">";
  6939.  E=DREZIONE/$10000
  6940.  If E>0
  6941.   S=DREZIONE mod $10000
  6942.   Print "edificio";E;" stanza";S
  6943.  Else 
  6944.   If DREZIONE<$FFFF
  6945.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6946.   Else 
  6947.    Print " nessuno"
  6948.   End If 
  6949.  End If 
  6950.  Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6951.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6952.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6953.  If NUMEROLUOGO$<>""
  6954.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6955.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6956.    If NUMEROEDIFICIO$<>""
  6957.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6958.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6959.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6960.     If NUMEROSTANZA$<>""
  6961.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6962.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6963.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6964.     End If 
  6965.    End If 
  6966.   Else 
  6967.    If NUMEROLUOGO$="n"
  6968.     DREZIONE=$FFFF
  6969.    Else 
  6970.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6971.    End If 
  6972.   End If 
  6973.   DREZIONES(7,STANZA,EDIFICIO)=DREZIONE
  6974.  End If 
  6975.  DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  6976.  Cls 
  6977.  Print "Direzione Sopra della stanza";STANZA;">";
  6978.  E=DREZIONE/$10000
  6979.  If E>0
  6980.   S=DREZIONE mod $10000
  6981.   Print "edificio";E;" stanza";S
  6982.  Else 
  6983.   If DREZIONE<$FFFF
  6984.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6985.   Else 
  6986.    Print " nessuno"
  6987.   End If 
  6988.  End If 
  6989.  Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6990.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6991.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6992.  If NUMEROLUOGO$<>""
  6993.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6994.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6995.    If NUMEROEDIFICIO$<>""
  6996.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6997.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6998.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6999.     If NUMEROSTANZA$<>""
  7000.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  7001.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  7002.      If NUMEROSTANZA=0
  7003.       DREZIONE=NUMEROEDIFICIO*$10000
  7004.      Else 
  7005.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  7006.      End If 
  7007.     End If 
  7008.    End If 
  7009.   Else 
  7010.    If NUMEROLUOGO$="n"
  7011.     DREZIONE=$FFFF
  7012.    Else 
  7013.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  7014.    End If 
  7015.   End If 
  7016.   DREZIONES(8,STANZA,EDIFICIO)=DREZIONE
  7017.  End If 
  7018.  DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  7019.  Cls 
  7020.  Print "Direzione Sotto della stanza";STANZA;">luogo";
  7021.  E=DREZIONE/$10000
  7022.  If E>0
  7023.   S=DREZIONE mod $10000
  7024.   Print "edificio";E;" stanza";S
  7025.  Else 
  7026.   If DREZIONE<$FFFF
  7027.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  7028.   Else 
  7029.    Print " nessuno"
  7030.   End If 
  7031.  End If 
  7032.  Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  7033.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  7034.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  7035.  If NUMEROLUOGO$<>""
  7036.   If NUMEROLUOGO$="e" and NUMEROE>-1
  7037.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  7038.    If NUMEROEDIFICIO$<>""
  7039.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  7040.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  7041.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  7042.     If NUMEROSTANZA$<>""
  7043.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  7044.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  7045.      If NUMEROSTANZA=0
  7046.       DREZIONE=NUMEROEDIFICIO*$10000
  7047.      Else 
  7048.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  7049.      End If 
  7050.     End If 
  7051.    End If 
  7052.   Else 
  7053.    If NUMEROLUOGO$="n"
  7054.     DREZIONE=$FFFF
  7055.    Else 
  7056.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  7057.    End If 
  7058.   End If 
  7059.   DREZIONES(9,STANZA,EDIFICIO)=DREZIONE
  7060.  End If 
  7061.  Cls 
  7062.  Print "Soldi nella stanza";STANZA;">";Str$(SOLDIS(STANZA,EDIFICIO))-" ";" ";
  7063.  If SOLDIS(STANZA,EDIFICIO)=1 Then Print "soldo" Else Print "soldi"
  7064.  Locate 0,ULTIMALINEA
  7065.  Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLASTANZA$;
  7066.  If SOLDINELLASTANZA$<>""
  7067.   SOLDINELLASTANZA=Val(SOLDINELLASTANZA$)
  7068.   Proc LIMITI[SOLDINELLASTANZA,0,65535] : SOLDIS(STANZA,EDIFICIO)=Param
  7069.  End If 
  7070.  Curs Off 
  7071. End Proc
  7072. Procedure MORTE[P]
  7073.  If P=0
  7074.   COMPIUTAAZIONE=0
  7075.   Print NOMEP$(0);" ï¿½ morto. La tua avventura ï¿½ finita."
  7076.   Print "La tua avventura ï¿½ durata";
  7077.   GIORNI=TEMP0TRASCORSO/1440
  7078.   If GIORNI>0
  7079.    Print GIORNI;
  7080.    If GIORNI=1
  7081.    Print " giorno"; Else Print " giorni";
  7082.    End If 
  7083.   End If 
  7084.   _ORE=TEMP0TRASCORSO/60 mod 24
  7085.   If _ORE>0
  7086.    Print _ORE;
  7087.    If _ORE=1
  7088.    Print " ora"; Else Print " ore";
  7089.    End If 
  7090.   End If 
  7091.   M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  7092.   If M1NUTI=1
  7093.   Print " minuto"; Else Print " minuti";
  7094.   End If 
  7095.   Print " di gioco."
  7096.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  7097.  Else 
  7098.   If Btst(2,TIPOP(0))=False
  7099.    Remember X : Remember Y 
  7100.    Print NOMEP$(P);" ï¿½ mort";
  7101.    If Btst(1,TIPOP(P))=True
  7102.     Print "a"
  7103.    Else 
  7104.     Print "o"
  7105.    End If 
  7106.   End If 
  7107.  End If 
  7108.  For A=0 To NUMEROO
  7109.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  7110.    POSIZIONEO(A)=POSIZIONEP(P)
  7111.    If Btst(1,TIPOO(A))=True
  7112.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  7113.    Else 
  7114.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  7115.    End If 
  7116.    If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  7117.     For B=0 To NUMEROO
  7118.      If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  7119.       If Btst(1,TIPOO(B))=True
  7120.        Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  7121.       Else 
  7122.        Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  7123.       End If 
  7124.      End If 
  7125.     Next B
  7126.     For B=1 To NUMEROP
  7127.      If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  7128.       Add PESONETTOP(P),-PESOP(B)*1000
  7129.       Add PESONETTOP(P),-PESONETTOP(B)
  7130.      End If 
  7131.     Next B
  7132.    End If 
  7133.   End If 
  7134.  Next A
  7135.  Add SOLDIL(POSIZIONEP(P)),SOLDIP(P)
  7136.  Add PESONETTOP(P),-SOLDIP(P)*PESOS
  7137.  SOLDIP(P)=0
  7138. End Proc
  7139. Procedure MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  7140.  If AZIONE=1
  7141.   Print "dai ai personaggi";PARA;" oggett";
  7142.   If PARA=1
  7143.    Print "o"
  7144.   Else 
  7145.    Print "i"
  7146.   End If 
  7147.  Else If AZIONE=2
  7148.   Print "dai ai personaggi";PARA;" ";
  7149.   Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7150.   If PARA=1
  7151.    Print NOMESCO$(PARB)
  7152.   Else 
  7153.    Print NOMEPCO$(PARB)
  7154.   End If 
  7155.  Else If AZIONE=3
  7156.   Print "dai ai personaggi";PARA;" oggett";
  7157.   If PARA=1
  7158.    Print "o ";
  7159.   Else 
  7160.    Print "i ";
  7161.   End If 
  7162.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7163.  Else If AZIONE=4
  7164.   Print "dai ai personaggi";PARA;" personaggi";
  7165.   If PARA=1
  7166.    Print "o"
  7167.   Else 
  7168.    Print 
  7169.   End If 
  7170.  Else If AZIONE=5
  7171.   Print "dai ai personaggi ";
  7172.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7173.   Print NOMEP$(PARA)
  7174.  Else If AZIONE=6
  7175.   Print "dai a ";
  7176.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7177.   Print NOMEP$(PARA);PARB;" oggett";
  7178.   If PARB=1
  7179.    Print "o"
  7180.   Else 
  7181.    Print "i"
  7182.   End If 
  7183.  Else If AZIONE=7
  7184.   Print "dai a ";
  7185.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7186.   Print NOMEP$(PARA);PARB;" ";
  7187.   Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7188.   If PARB=1
  7189.    Print NOMESCO$(PARC)
  7190.   Else 
  7191.    Print NOMEPCO$(PARC)
  7192.   End If 
  7193.  Else If AZIONE=8
  7194.   Print "dai a ";
  7195.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7196.   Print NOMEP$(PARA);PARB;" oggett";
  7197.   If PARB=1
  7198.    Print "o ";
  7199.   Else 
  7200.    Print "i ";
  7201.   End If 
  7202.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7203.  Else If AZIONE=9
  7204.   Print "dai a ";
  7205.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7206.   Print NOMEP$(PARA);PARB;" personaggi";
  7207.   If PARB=1
  7208.    Print "o"
  7209.   Else 
  7210.    Print 
  7211.   End If 
  7212.  Else If AZIONE=10
  7213.   Print "dai a ";
  7214.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7215.   Print NOMEP$(PARA);" ";
  7216.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7217.   Print NOMEP$(PARB)
  7218.  Else If AZIONE=11
  7219.   Print "lascia";PARA;" oggett";
  7220.   If PARA=1
  7221.    Print "o"
  7222.   Else 
  7223.    Print "i"
  7224.   End If 
  7225.  Else If AZIONE=12
  7226.   Print "lascia";PARA;" ";
  7227.   Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7228.   If PARA=1
  7229.    Print NOMESCO$(PARB)
  7230.   Else 
  7231.    Print NOMEPCO$(PARB)
  7232.   End If 
  7233.  Else If AZIONE=13
  7234.   Print "lascia";PARA;" oggett";
  7235.   If PARA=1
  7236.    Print "o ";
  7237.   Else 
  7238.    Print "i ";
  7239.   End If 
  7240.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7241.  Else If AZIONE=14
  7242.   Print "lascia";PARA;" personaggi";
  7243.   If PARA=1
  7244.    Print "o"
  7245.   Else 
  7246.    Print 
  7247.   End If 
  7248.  Else If AZIONE=15
  7249.   Print "lascia ";
  7250.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7251.   Print NOMEP$(PARA)
  7252.  Else If AZIONE=16
  7253.   Print "muoviti"
  7254.  Else If AZIONE=17
  7255.   Print "prendi";PARA;" oggett";
  7256.   If PARA=1
  7257.    Print "o"
  7258.   Else 
  7259.    Print "i"
  7260.   End If 
  7261.  Else If AZIONE=18
  7262.   Print "prendi";PARA;" ";
  7263.   Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7264.   If PARA=1
  7265.    Print NOMESCO$(PARB)
  7266.   Else 
  7267.    Print NOMEPCO$(PARB)
  7268.   End If 
  7269.  Else If AZIONE=19
  7270.   Print "prendi";PARA;" oggett";
  7271.   If PARA=1
  7272.    Print "o ";
  7273.   Else 
  7274.    Print "i ";
  7275.   End If 
  7276.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7277.  Else If AZIONE=20
  7278.   Print "prendi";PARA;" personaggi";
  7279.   If PARA=1
  7280.    Print "o"
  7281.   Else 
  7282.    Print 
  7283.   End If 
  7284.  Else If AZIONE=21
  7285.   Print "prendi ";
  7286.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7287.   Print NOMEP$(PARA)
  7288.  Else If AZIONE=22
  7289.   Print "segui"
  7290.  Else If AZIONE=23
  7291.   Print "segui ";
  7292.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7293.   Print NOMEP$(PARA)
  7294.  Else If AZIONE=24
  7295.   Print "usa un'oggetto su";PARA;" oggett";
  7296.   If PARA=1
  7297.    Print "o"
  7298.   Else 
  7299.    Print "i"
  7300.   End If 
  7301.  Else If AZIONE=25
  7302.   Print "usa un'oggetto su";PARA;" ";
  7303.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7304.   If PARA=1
  7305.    Print NOMESCO$(PARB)
  7306.   Else 
  7307.    Print NOMEPCO$(PARB)
  7308.   End If 
  7309.  Else If AZIONE=26
  7310.   Print "usa un'oggetto su";PARA;" oggett";
  7311.   If PARA=1
  7312.    Print "o ";
  7313.   Else 
  7314.    Print "i ";
  7315.   End If 
  7316.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7317.  Else If AZIONE=27
  7318.   Print "usa un'oggetto su";PARA;" personaggi";
  7319.   If PARA=1
  7320.    Print "o"
  7321.   Else 
  7322.    Print 
  7323.   End If 
  7324.  Else If AZIONE=28
  7325.   Print "usa un'oggetto su ";
  7326.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7327.   Print NOMEP$(PARA)
  7328.  Else If AZIONE=29
  7329.   Print "usa 1 ";
  7330.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7331.   Print NOMESCO$(PARA);" su";PARB;" oggett";
  7332.   If PARB=1
  7333.    Print "o"
  7334.   Else 
  7335.    Print "i"
  7336.   End If 
  7337.  Else If AZIONE=30
  7338.   Print "usa 1 ";
  7339.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7340.   Print NOMESCO$(PARA);" su";PARB;" ";
  7341.   Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7342.   If PARB=1
  7343.    Print NOMESCO$(PARC)
  7344.   Else 
  7345.    Print NOMEPCO$(PARC)
  7346.   End If 
  7347.  Else If AZIONE=31
  7348.   Print "usa 1 ";
  7349.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7350.   Print NOMESCO$(PARA);" su";PARB;" oggett";
  7351.   If PARB=1
  7352.    Print "o ";
  7353.   Else 
  7354.    Print "i ";
  7355.   End If 
  7356.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7357.  Else If AZIONE=32
  7358.   Print "usa 1 ";
  7359.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7360.   Print NOMESCO$(PARA);" su";PARB;" personaggi";
  7361.   If PARB=1
  7362.    Print "o"
  7363.   Else 
  7364.    Print 
  7365.   End If 
  7366.  Else If AZIONE=33
  7367.   Print "usa 1 ";
  7368.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7369.   Print NOMESCO$(PARA);" su ";
  7370.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7371.   Print NOMEP$(PARB)
  7372.  Else If AZIONE=34
  7373.   Print "usa un'oggetto ";
  7374.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7375.   Print Space$(9);"su";PARB;" oggett";
  7376.   If PARB=1
  7377.    Print "o"
  7378.   Else 
  7379.    Print "i"
  7380.   End If 
  7381.  Else If AZIONE=35
  7382.   Print "usa un'oggetto ";
  7383.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7384.   Print Space$(9);"su";PARB;" ";
  7385.   Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7386.   If PARB=1
  7387.    Print NOMESCO$(PARC)
  7388.   Else 
  7389.    Print NOMEPCO$(PARC)
  7390.   End If 
  7391.  Else If AZIONE=36
  7392.   Print "usa un'oggetto ";
  7393.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7394.   Print Space$(9);"su";PARB;" oggett";
  7395.   If PARB=1
  7396.    Print "o ";
  7397.   Else 
  7398.    Print "i ";
  7399.   End If 
  7400.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7401.  Else If AZIONE=37
  7402.   Print "usa un'oggetto ";
  7403.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7404.   Print Space$(9);"su";PARB;" personaggi";
  7405.   If PARB=1
  7406.    Print "o"
  7407.   Else 
  7408.    Print 
  7409.   End If 
  7410.  Else If AZIONE=38
  7411.   Print "usa un'oggetto ";
  7412.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7413.   Print Space$(9);"su ";
  7414.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7415.   Print NOMEP$(PARB)
  7416.  Else If AZIONE=39
  7417.   Print "usati un'oggetto"
  7418.  Else If AZIONE=40
  7419.   Print "usati un'oggetto ";
  7420.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7421.   Print NOMESCO$(PARA)
  7422.  Else If AZIONE=41
  7423.   Print "usati un'oggetto ";
  7424.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7425.  End If 
  7426. End Proc
  7427. Procedure MOSTRACATEGORIADEGLIOGGETTI
  7428.  Cls 
  7429.  If M0DIFICA=False
  7430.   Proc TIC[MESSAGGIO3$,0] : Print 
  7431.  End If 
  7432.  Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>"
  7433.  Print NOMESCO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  7434.  Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7435.  PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  7436.  Print Str$(PESOOGGETTO)-" ";" ";
  7437.  If PESOOGGETTO=1
  7438.   Print "grammo"
  7439.  Else 
  7440.   Print "grammi"
  7441.  End If 
  7442.  Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>"
  7443.  Print NOMESRO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  7444.  Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>";
  7445.  PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  7446.  Print Str$(PESORESTOOGGETTO)-" ";" ";
  7447.  If PESORESTOOGGETTO=1
  7448.   Print "grammo"
  7449.  Else 
  7450.   Print "grammi"
  7451.  End If 
  7452.  Print "Parametro della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7453.  Print Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  7454.  If Btst(0,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Commestibile"
  7455.  If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Contenitore"
  7456.  If Btst(2,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Difensivo"
  7457.  If Btst(3,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Leggibile"
  7458.  If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Liquido"
  7459.  If Btst(5,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Magico"
  7460.  If Btst(6,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Offensivo"
  7461.  If Btst(7,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Residente"
  7462.  If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=False Then Print "Solido"
  7463.  If Btst(8,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasferibile"
  7464.  If Btst(9,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasparente"
  7465.  If Btst(10,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Vincolato"
  7466. End Proc
  7467. Procedure MOSTRACATEGORIAPERAZIONE[CATEGORIA]
  7468.  If Btst(0,CATEGORIA)=True Then Print "commestibile ";
  7469.  If Btst(1,CATEGORIA)=True Then Print "contenitore ";
  7470.  If Btst(2,CATEGORIA)=True Then Print "difensivo ";
  7471.  If Btst(3,CATEGORIA)=True Then Print "leggibile ";
  7472.  If Btst(4,CATEGORIA)=True Then Print "liquido "; Else Print "solido ";
  7473.  If Btst(5,CATEGORIA)=True Then Print "magico ";
  7474.  If Btst(6,CATEGORIA)=True Then Print "offensivo ";
  7475.  If Btst(8,CATEGORIA)=True Then Print "trasferibile ";
  7476.  If Btst(9,CATEGORIA)=True Then Print "trasparente ";
  7477.  If Btst(10,CATEGORIA)=True Then Print "vincolato ";
  7478.  Print 
  7479. End Proc
  7480. Procedure MOSTRACATEGORIAPERINSERIMENTO[P]
  7481.  Repeat 
  7482.   Cls 
  7483.   Print "Nome del personaggio";P;">";NOMEP$(P)
  7484.   Print At(0,ULTIMALINEA-11);"Categoria";CATEGORIA;" degli oggetti>";NOMEPCO$(CATEGORIA)
  7485.   If Btst(0,TIPOCO(CATEGORIA))=True Then Print "commestibile "
  7486.   If Btst(1,TIPOCO(CATEGORIA))=True Then Print "contenitore "
  7487.   If Btst(2,TIPOCO(CATEGORIA))=True Then Print "difensivo "
  7488.   If Btst(3,TIPOCO(CATEGORIA))=True Then Print "leggibile "
  7489.   If Btst(4,TIPOCO(CATEGORIA))=True Then Print "liquido " Else Print "solido "
  7490.   If Btst(5,TIPOCO(CATEGORIA))=True Then Print "magico "
  7491.   If Btst(6,TIPOCO(CATEGORIA))=True Then Print "offensivo "
  7492.   If Btst(8,TIPOCO(CATEGORIA))=True Then Print "trasferibile "
  7493.   If Btst(9,TIPOCO(CATEGORIA))=True Then Print "trasparente "
  7494.   If Btst(10,TIPOCO(CATEGORIA))=True Then Print "vincolato "
  7495.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli la categoria Spazio conferma",ULTIMALINEA]
  7496.   Repeat 
  7497.    TASTOPREMUTO$=Inkey$
  7498.   Until TASTOPREMUTO$<>""
  7499.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  7500.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  7501.  Until TASTOPREMUTO$=" "
  7502. End Proc[TIPOCO(CATEGORIA)]
  7503. Procedure MOSTRAGLIEDIFICI
  7504.  Shared TASTOPREMUTO$
  7505.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta edificio...C -> carica un"
  7506.  MESSAGGIO2$=MESSAGGIO2$+" file di Adventures Conceiver...D -> mostra il desti"
  7507.  MESSAGGIO2$=MESSAGGIO2$+"no (scopo) del gioco...G -> gioca un'avventura...I -"
  7508.  MESSAGGIO2$=MESSAGGIO2$+"> mostra le stanze dell'edificio corrente...K -> mos"
  7509.  MESSAGGIO2$=MESSAGGIO2$+"tra le categorie degli oggetti...L -> mostra i luogh"
  7510.  MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7511.  MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7512.  MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7513.  MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7514.  MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7515.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7516.  Repeat 
  7517.   Proc MOSTRAEDIFICIO
  7518.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7519.   CARATTEREMESSAGGIO=0
  7520.   Repeat 
  7521.    TASTOPREMUTO$=Inkey$
  7522.    Proc MESSAGGIO[MESSAGGIO2$]
  7523.   Until TASTOPREMUTO$<>""
  7524.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7525.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7526.   If TASTOPREMUTO$="d" Then Exit 
  7527.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7528.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7529.   If TASTOPREMUTO$="k" Then Exit 
  7530.   If TASTOPREMUTO$="l" Then Exit 
  7531.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7532.   If TASTOPREMUTO$="o" Then Exit 
  7533.   If TASTOPREMUTO$="p" Then Exit 
  7534.   If TASTOPREMUTO$="r" Then Exit 
  7535.   If TASTOPREMUTO$="s"
  7536.    Proc DAVARIABILIABANCO[False]
  7537.    If SENZAMEMORIA=False
  7538.     Proc DAVARIABILIABANCO[True]
  7539.     If SENZAMEMORIA=False
  7540.      Proc SALVAUNFILE
  7541.     End If 
  7542.    End If 
  7543.   End If 
  7544.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7545.   If EDIFICIO>-1
  7546.    If TASTOPREMUTO$=Cup$
  7547.     Add EDIFICIO,-1,0 To NUMEROE
  7548.    End If 
  7549.    If TASTOPREMUTO$=Cdown$
  7550.     Add EDIFICIO,1,0 To NUMEROE
  7551.    End If 
  7552.   End If 
  7553.  Until TASTOPREMUTO$=Chr$(27)
  7554. End Proc
  7555. Procedure MOSTRAGLIOGGETTI
  7556.  Shared TASTOPREMUTO$
  7557.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta oggetto...C -> carica un "
  7558.  MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7559.  MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7560.  MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7561.  MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7562.  MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi M -> modifica un'avventur"
  7563.  MESSAGGIO2$=MESSAGGIO2$+"a...P -> mostra i personaggi...R -> mostra le region"
  7564.  MESSAGGIO2$=MESSAGGIO2$+"i...S -> salva un file di Adventures Conceiver...? -"
  7565.  MESSAGGIO2$=MESSAGGIO2$+"> mostra i meriti...Esc -> esci da Adventures Concei"
  7566.  MESSAGGIO2$=MESSAGGIO2$+"ver..."
  7567.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7568.  Repeat 
  7569.   Proc MOSTRAOGGETTO
  7570.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7571.   CARATTEREMESSAGGIO=0
  7572.   Repeat 
  7573.    TASTOPREMUTO$=Inkey$
  7574.    Proc MESSAGGIO[MESSAGGIO2$]
  7575.   Until TASTOPREMUTO$<>""
  7576.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7577.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7578.   If TASTOPREMUTO$="d" Then Exit 
  7579.   If TASTOPREMUTO$="e" Then Exit 
  7580.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7581.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7582.   If TASTOPREMUTO$="k" Then Exit 
  7583.   If TASTOPREMUTO$="l" Then Exit 
  7584.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7585.   If TASTOPREMUTO$="p" Then Exit 
  7586.   If TASTOPREMUTO$="r" Then Exit 
  7587.   If TASTOPREMUTO$="s"
  7588.    Proc DAVARIABILIABANCO[False]
  7589.    If SENZAMEMORIA=False
  7590.     Proc DAVARIABILIABANCO[True]
  7591.     If SENZAMEMORIA=False
  7592.      Proc SALVAUNFILE
  7593.     End If 
  7594.    End If 
  7595.   End If 
  7596.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7597.   If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  7598.   If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  7599.  Until TASTOPREMUTO$=Chr$(27)
  7600. End Proc
  7601. Procedure MOSTRAEDIFICIO
  7602.  Cls 
  7603.  If M0DIFICA=False
  7604.   Proc TIC[MESSAGGIO3$,0] : Print 
  7605.  End If 
  7606.  If EDIFICIO>-1
  7607.   Print "Edificio";EDIFICIO;":"
  7608.   Print "Nome>";NOMEE$(EDIFICIO)
  7609.   Print "Posizione>luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  7610.   Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  7611.  Else 
  7612.   Print "Nessun edificio"
  7613.  End If 
  7614. End Proc
  7615. Procedure MOSTRAILDESTINODELGIOCO
  7616.  Shared TASTOPREMUTO$
  7617.  MESSAGGIO2$="C -> carica un file di Adventures Conceiver...E -> mostra gli ed"
  7618.  MESSAGGIO2$=MESSAGGIO2$+"ifici...G -> gioca un'avventura...I -> mostra le sta"
  7619.  MESSAGGIO2$=MESSAGGIO2$+"nze dell'edificio corrente...K -> mostra le categori"
  7620.  MESSAGGIO2$=MESSAGGIO2$+"e degli oggetti...L -> mostra i luoghi...M -> modifi"
  7621.  MESSAGGIO2$=MESSAGGIO2$+"ca un'avventura...O -> mostra gli oggetti...P -> mos"
  7622.  MESSAGGIO2$=MESSAGGIO2$+"tra i personaggi...R -> mostra le regioni...S -> sal"
  7623.  MESSAGGIO2$=MESSAGGIO2$+"va un file di Adventures Conceiver...? -> mostra i m"
  7624.  MESSAGGIO2$=MESSAGGIO2$+"eriti...Esc -> esci da Adventures Conceiver..."
  7625.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7626.  Repeat 
  7627.   Proc SCOPODELGIOCO[True]
  7628.   Print "Nemici>";
  7629.   If ANEMICI=True Then Print "attivati" Else Print "disattivati"
  7630.   Print "Musica>";
  7631.   If _MUSICA=True Then Print "attivata" Else Print "disattivata"
  7632.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7633.   CARATTEREMESSAGGIO=0
  7634.   Repeat 
  7635.    TASTOPREMUTO$=Inkey$
  7636.    Proc MESSAGGIO[MESSAGGIO2$]
  7637.   Until TASTOPREMUTO$<>""
  7638.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7639.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7640.   If TASTOPREMUTO$="e" Then Exit 
  7641.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7642.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7643.   If TASTOPREMUTO$="k" Then Exit 
  7644.   If TASTOPREMUTO$="l" Then Exit 
  7645.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7646.   If TASTOPREMUTO$="o" Then Exit 
  7647.   If TASTOPREMUTO$="p" Then Exit 
  7648.   If TASTOPREMUTO$="r" Then Exit 
  7649.   If TASTOPREMUTO$="s"
  7650.    Proc DAVARIABILIABANCO[False]
  7651.    If SENZAMEMORIA=False
  7652.     Proc DAVARIABILIABANCO[True]
  7653.     If SENZAMEMORIA=False
  7654.      Proc SALVAUNFILE
  7655.     End If 
  7656.    End If 
  7657.   End If 
  7658.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7659.  Until TASTOPREMUTO$=Chr$(27)
  7660. End Proc
  7661. Procedure MOSTRAILUOGHI
  7662.  Shared TASTOPREMUTO$
  7663.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta luogo...C -> carica un fi"
  7664.  MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...D -> mostra il destino "
  7665.  MESSAGGIO2$=MESSAGGIO2$+"(scopo) del gioco...E -> mostra gli edifici...G -> g"
  7666.  MESSAGGIO2$=MESSAGGIO2$+"ioca un'avventura...I -> mostra le stanze dell'edifi"
  7667.  MESSAGGIO2$=MESSAGGIO2$+"cio corrente...K -> mostra le categorie degli oggett"
  7668.  MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7669.  MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7670.  MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7671.  MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7672.  MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7673.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7674.  Repeat 
  7675.   Proc MOSTRALUOGO
  7676.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7677.   CARATTEREMESSAGGIO=0
  7678.   Repeat 
  7679.    TASTOPREMUTO$=Inkey$
  7680.    Proc MESSAGGIO[MESSAGGIO2$]
  7681.   Until TASTOPREMUTO$<>""
  7682.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7683.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7684.   If TASTOPREMUTO$="d" Then Exit 
  7685.   If TASTOPREMUTO$="e" Then Exit 
  7686.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7687.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7688.   If TASTOPREMUTO$="k" Then Exit 
  7689.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7690.   If TASTOPREMUTO$="o" Then Exit 
  7691.   If TASTOPREMUTO$="p" Then Exit 
  7692.   If TASTOPREMUTO$="r" Then Exit 
  7693.   If TASTOPREMUTO$="s"
  7694.    Proc DAVARIABILIABANCO[False]
  7695.    If SENZAMEMORIA=False
  7696.     Proc DAVARIABILIABANCO[True]
  7697.     If SENZAMEMORIA=False
  7698.      Proc SALVAUNFILE
  7699.     End If 
  7700.    End If 
  7701.   End If 
  7702.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7703.   If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  7704.   If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  7705.  Until TASTOPREMUTO$=Chr$(27)
  7706. End Proc
  7707. Procedure MOSTRAIPERSONAGGI
  7708.  Shared TASTOPREMUTO$
  7709.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta personaggio...C -> carica"
  7710.  MESSAGGIO2$=MESSAGGIO2$+" un file di Adventures Conceiver...D -> mostra il de"
  7711.  MESSAGGIO2$=MESSAGGIO2$+"stino (scopo) del gioco...E -> mostra gli edifici..."
  7712.  MESSAGGIO2$=MESSAGGIO2$+"G -> gioca un'avventura...I -> mostra le stanze dell"
  7713.  MESSAGGIO2$=MESSAGGIO2$+"'edificio corrente...K -> mostra le categorie degli "
  7714.  MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7715.  MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...R -> mostra le r"
  7716.  MESSAGGIO2$=MESSAGGIO2$+"egioni...S -> salva un file di Adventures Conceiver."
  7717.  MESSAGGIO2$=MESSAGGIO2$+"..? -> mostra i meriti...Esc -> esci da Adventures C"
  7718.  MESSAGGIO2$=MESSAGGIO2$+"onceiver..."
  7719.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7720.  Repeat 
  7721.   Proc MOSTRAPERSONAGGIO
  7722.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7723.   CARATTEREMESSAGGIO=0
  7724.   Repeat 
  7725.    TASTOPREMUTO$=Inkey$
  7726.    Proc MESSAGGIO[MESSAGGIO2$]
  7727.   Until TASTOPREMUTO$<>""
  7728.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7729.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7730.   If TASTOPREMUTO$="d" Then Exit 
  7731.   If TASTOPREMUTO$="e" Then Exit 
  7732.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7733.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7734.   If TASTOPREMUTO$="k" Then Exit 
  7735.   If TASTOPREMUTO$="l" Then Exit 
  7736.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7737.   If TASTOPREMUTO$="o" Then Exit 
  7738.   If TASTOPREMUTO$="r" Then Exit 
  7739.   If TASTOPREMUTO$="s"
  7740.    Proc DAVARIABILIABANCO[False]
  7741.    If SENZAMEMORIA=False
  7742.     Proc DAVARIABILIABANCO[True]
  7743.     If SENZAMEMORIA=False
  7744.      Proc SALVAUNFILE
  7745.     End If 
  7746.    End If 
  7747.   End If 
  7748.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7749.   If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  7750.   If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  7751.  Until TASTOPREMUTO$=Chr$(27)
  7752. End Proc
  7753. Procedure MOSTRALECATEGORIEDEGLIOGGETTI
  7754.  Shared TASTOPREMUTO$
  7755.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta categoria...C -> carica u"
  7756.  MESSAGGIO2$=MESSAGGIO2$+"n file di Adventures Conceiver...D -> mostra il dest"
  7757.  MESSAGGIO2$=MESSAGGIO2$+"ino (scopo) del gioco...E -> mostra gli edifici...G "
  7758.  MESSAGGIO2$=MESSAGGIO2$+"-> gioca un'avventura...I -> mostra le stanze dell'e"
  7759.  MESSAGGIO2$=MESSAGGIO2$+"dificio corrente...L -> mostra i luoghi...M -> modif"
  7760.  MESSAGGIO2$=MESSAGGIO2$+"ica un'avventura...O -> mostra gli oggetti...P -> mo"
  7761.  MESSAGGIO2$=MESSAGGIO2$+"stra i personaggi...R -> mostra le regioni...S -> sa"
  7762.  MESSAGGIO2$=MESSAGGIO2$+"lva un file di Adventures Conceiver...? -> mostra i "
  7763.  MESSAGGIO2$=MESSAGGIO2$+"meriti...Esc -> esci da Adventures Conceiver..."
  7764.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7765.  Repeat 
  7766.   Proc MOSTRACATEGORIADEGLIOGGETTI
  7767.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7768.   CARATTEREMESSAGGIO=0
  7769.   Repeat 
  7770.    TASTOPREMUTO$=Inkey$
  7771.    Proc MESSAGGIO[MESSAGGIO2$]
  7772.   Until TASTOPREMUTO$<>""
  7773.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7774.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7775.   If TASTOPREMUTO$="d" Then Exit 
  7776.   If TASTOPREMUTO$="e" Then Exit 
  7777.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7778.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7779.   If TASTOPREMUTO$="l" Then Exit 
  7780.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7781.   If TASTOPREMUTO$="o" Then Exit 
  7782.   If TASTOPREMUTO$="p" Then Exit 
  7783.   If TASTOPREMUTO$="r" Then Exit 
  7784.   If TASTOPREMUTO$="s"
  7785.    Proc DAVARIABILIABANCO[False]
  7786.    If SENZAMEMORIA=False
  7787.     Proc DAVARIABILIABANCO[True]
  7788.     If SENZAMEMORIA=False
  7789.      Proc SALVAUNFILE
  7790.     End If 
  7791.    End If 
  7792.   End If 
  7793.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7794.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  7795.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  7796.  Until TASTOPREMUTO$=Chr$(27)
  7797. End Proc
  7798. Procedure MOSTRALEREGIONI
  7799.  Shared TASTOPREMUTO$
  7800.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta regione...C -> carica un "
  7801.  MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7802.  MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7803.  MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7804.  MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7805.  MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi...M -> modifica un'avvent"
  7806.  MESSAGGIO2$=MESSAGGIO2$+"ura...O -> mostra gli oggetti...P -> mostra i person"
  7807.  MESSAGGIO2$=MESSAGGIO2$+"aggi...S -> salva un file di Adventures Conceiver..."
  7808.  MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7809.  MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7810.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7811.  Repeat 
  7812.   Proc MOSTRAREGIONE
  7813.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7814.   CARATTEREMESSAGGIO=0
  7815.   Repeat 
  7816.    TASTOPREMUTO$=Inkey$
  7817.    Proc MESSAGGIO[MESSAGGIO2$]
  7818.   Until TASTOPREMUTO$<>""
  7819.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7820.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7821.   If TASTOPREMUTO$="d" Then Exit 
  7822.   If TASTOPREMUTO$="e" Then Exit 
  7823.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7824.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7825.   If TASTOPREMUTO$="k" Then Exit 
  7826.   If TASTOPREMUTO$="l" Then Exit 
  7827.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7828.   If TASTOPREMUTO$="o" Then Exit 
  7829.   If TASTOPREMUTO$="p" Then Exit 
  7830.   If TASTOPREMUTO$="s"
  7831.    Proc DAVARIABILIABANCO[False]
  7832.    If SENZAMEMORIA=False
  7833.     Proc DAVARIABILIABANCO[True]
  7834.     If SENZAMEMORIA=False
  7835.      Proc SALVAUNFILE
  7836.     End If 
  7837.    End If 
  7838.   End If 
  7839.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7840.   If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  7841.   If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  7842.  Until TASTOPREMUTO$=Chr$(27)
  7843. End Proc
  7844. Procedure MOSTRALESTANZE
  7845.  Shared TASTOPREMUTO$
  7846.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta stanza...C -> carica un f"
  7847.  MESSAGGIO2$=MESSAGGIO2$+"ile di Adventures Conceiver...D -> mostra il destino"
  7848.  MESSAGGIO2$=MESSAGGIO2$+" (scopo) del gioco...E -> mostra gli edifici...G -> "
  7849.  MESSAGGIO2$=MESSAGGIO2$+"gioca un'avventura...K -> mostra le categorie degli "
  7850.  MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7851.  MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...P -> mostra i pe"
  7852.  MESSAGGIO2$=MESSAGGIO2$+"rsonaggi...R -> mostra le regioni...S -> salva un fi"
  7853.  MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...? -> mostra i meriti..."
  7854.  MESSAGGIO2$=MESSAGGIO2$+"Esc -> esci da Adventures Conceiver..."
  7855.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7856.  Repeat 
  7857.   Proc MOSTRASTANZA
  7858.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7859.   CARATTEREMESSAGGIO=0
  7860.   Repeat 
  7861.    TASTOPREMUTO$=Inkey$
  7862.    Proc MESSAGGIO[MESSAGGIO2$]
  7863.   Until TASTOPREMUTO$<>""
  7864.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7865.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7866.   If TASTOPREMUTO$="d" Then Exit 
  7867.   If TASTOPREMUTO$="e" Then Exit 
  7868.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7869.   If TASTOPREMUTO$="k" Then Exit 
  7870.   If TASTOPREMUTO$="l" Then Exit 
  7871.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7872.   If TASTOPREMUTO$="o" Then Exit 
  7873.   If TASTOPREMUTO$="p" Then Exit 
  7874.   If TASTOPREMUTO$="r" Then Exit 
  7875.   If TASTOPREMUTO$="s"
  7876.    Proc DAVARIABILIABANCO[False]
  7877.    If SENZAMEMORIA=False
  7878.     Proc DAVARIABILIABANCO[True]
  7879.     If SENZAMEMORIA=False
  7880.      Proc SALVAUNFILE
  7881.     End If 
  7882.    End If 
  7883.   End If 
  7884.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7885.   If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  7886.   If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  7887.  Until TASTOPREMUTO$=Chr$(27)
  7888. End Proc
  7889. Procedure MOSTRALUOGO
  7890.  Cls 
  7891.  If M0DIFICA=False
  7892.   Proc TIC[MESSAGGIO3$,0] : Print 
  7893.  End If 
  7894.  Print "Luogo";LUOGO;":"
  7895.  Print "Nome>";NOMEL$(LUOGO)
  7896.  Print "Regione di appartenenza>";NOMER$(REGIONEL(LUOGO))
  7897.  Print "Tipo di luogo>";TIPOL$(TIPOL(LUOGO))
  7898.  DREZIONE=DREZIONEL(0,LUOGO)
  7899.  Print "Direzione Nord     >";
  7900.  E=DREZIONE/$10000
  7901.  If E>0
  7902.   S=DREZIONE mod $10000
  7903.   Print "edificio";E;" stanza";S
  7904.  Else 
  7905.   DREZIONE=DREZIONE mod $10000
  7906.   If DREZIONE<$FFFF
  7907.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7908.   Else 
  7909.    Print "nessun luogo"
  7910.   End If 
  7911.  End If 
  7912.  DREZIONE=DREZIONEL(1,LUOGO)
  7913.  Print "Direzione NordEst  >";
  7914.  E=DREZIONE/$10000
  7915.  If E>0
  7916.   S=DREZIONE mod $10000
  7917.   Print "edificio";E;" stanza";S
  7918.  Else 
  7919.   DREZIONE=DREZIONE mod $10000
  7920.   If DREZIONE<$FFFF
  7921.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7922.   Else 
  7923.    Print "nessun luogo"
  7924.   End If 
  7925.  End If 
  7926.  DREZIONE=DREZIONEL(2,LUOGO)
  7927.  Print "Direzione Est      >";
  7928.  E=DREZIONE/$10000
  7929.  If E>0
  7930.   S=DREZIONE mod $10000
  7931.   Print "edificio";E;" stanza";S
  7932.  Else 
  7933.   DREZIONE=DREZIONE mod $10000
  7934.   If DREZIONE<$FFFF
  7935.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7936.   Else 
  7937.    Print "nessun luogo"
  7938.   End If 
  7939.  End If 
  7940.  DREZIONE=DREZIONEL(3,LUOGO)
  7941.  Print "Direzione SudEst   >";
  7942.  E=DREZIONE/$10000
  7943.  If E>0
  7944.   S=DREZIONE mod $10000
  7945.   Print "edificio";E;" stanza";S
  7946.  Else 
  7947.   DREZIONE=DREZIONE mod $10000
  7948.   If DREZIONE<$FFFF
  7949.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7950.   Else 
  7951.    Print "nessun luogo"
  7952.   End If 
  7953.  End If 
  7954.  DREZIONE=DREZIONEL(4,LUOGO)
  7955.  Print "Direzione Sud      >";
  7956.  E=DREZIONE/$10000
  7957.  If E>0
  7958.   S=DREZIONE mod $10000
  7959.   Print "edificio";E;" stanza";S
  7960.  Else 
  7961.   DREZIONE=DREZIONE mod $10000
  7962.   If DREZIONE<$FFFF
  7963.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7964.   Else 
  7965.    Print "nessun luogo"
  7966.   End If 
  7967.  End If 
  7968.  DREZIONE=DREZIONEL(5,LUOGO)
  7969.  Print "Direzione SudOvest >";
  7970.  E=DREZIONE/$10000
  7971.  If E>0
  7972.   S=DREZIONE mod $10000
  7973.   Print "edificio";E;" stanza";S
  7974.  Else 
  7975.   DREZIONE=DREZIONE mod $10000
  7976.   If DREZIONE<$FFFF
  7977.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7978.   Else 
  7979.    Print "nessun luogo"
  7980.   End If 
  7981.  End If 
  7982.  DREZIONE=DREZIONEL(6,LUOGO)
  7983.  Print "Direzione Ovest    >";
  7984.  E=DREZIONE/$10000
  7985.  If E>0
  7986.   S=DREZIONE mod $10000
  7987.   Print "edificio";E;" stanza";S
  7988.  Else 
  7989.   DREZIONE=DREZIONE mod $10000
  7990.   If DREZIONE<$FFFF
  7991.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7992.   Else 
  7993.    Print "nessun luogo"
  7994.   End If 
  7995.  End If 
  7996.  DREZIONE=DREZIONEL(7,LUOGO)
  7997.  Print "Direzione NordOvest>";
  7998.  E=DREZIONE/$10000
  7999.  If E>0
  8000.   S=DREZIONE mod $10000
  8001.   Print "edificio";E;" stanza";S
  8002.  Else 
  8003.   DREZIONE=DREZIONE mod $10000
  8004.   If DREZIONE<$FFFF
  8005.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8006.   Else 
  8007.    Print "nessun luogo"
  8008.   End If 
  8009.  End If 
  8010.  DREZIONE=DREZIONEL(8,LUOGO)
  8011.  Print "Direzione Sopra    >";
  8012.  E=DREZIONE/$10000
  8013.  If E>0
  8014.   S=DREZIONE mod $10000
  8015.   Print "edificio";E;" stanza";S
  8016.  Else 
  8017.   DREZIONE=DREZIONE mod $10000
  8018.   If DREZIONE<$FFFF
  8019.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8020.   Else 
  8021.    Print "nessun luogo"
  8022.   End If 
  8023.  End If 
  8024.  DREZIONE=DREZIONEL(9,LUOGO)
  8025.  Print "Direzione Sotto    >";
  8026.  E=DREZIONE/$10000
  8027.  If E>0
  8028.   S=DREZIONE mod $10000
  8029.   Print "edificio";E;" stanza";S
  8030.  Else 
  8031.   DREZIONE=DREZIONE mod $10000
  8032.   If DREZIONE<$FFFF
  8033.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8034.   Else 
  8035.    Print "nessun luogo"
  8036.   End If 
  8037.  End If 
  8038.  SOLDINELLUOGO=SOLDIL(LUOGO)
  8039.  If SOLDINELLUOGO>0
  8040.   Print Str$(SOLDINELLUOGO)-" ";" ";
  8041.   If SOLDINELLUOGO=1
  8042.    Print "soldo"
  8043.   Else 
  8044.    Print "soldi"
  8045.   End If 
  8046.  End If 
  8047. End Proc
  8048. Procedure MOSTRAMESSAGGIO[MESSAGGIO4$,MESSAGGIO5$]
  8049.  Cls 
  8050.  Proc TIC[MESSAGGIO4$,0] : Print : POSIZIONE=1
  8051.  Repeat 
  8052.   SPAZIO=Instr(MESSAGGIO5$," ",POSIZIONE)
  8053.   If SPAZIO>0
  8054.    If X Curs+SPAZIO-POSIZIONE>79
  8055.     Print : X=0
  8056.     Proc FONDOSCHERMOGIOCO
  8057.    End If 
  8058.    Print Mid$(MESSAGGIO5$,POSIZIONE,SPAZIO-POSIZIONE+1);
  8059.    POSIZIONE=SPAZIO+1
  8060.   Else 
  8061.    Print Mid$(MESSAGGIO5$,POSIZIONE,Len(MESSAGGIO5$)-POSIZIONE+1)
  8062.   End If 
  8063.  Until SPAZIO=0
  8064.  If X Curs>0 or Y Curs>0
  8065.   Proc TIC["Premi un tasto...",ULTIMALINEA] : Wait Key 
  8066.  End If 
  8067. End Proc
  8068. Procedure MOSTRAOGGETTO
  8069.  Cls 
  8070.  If M0DIFICA=False
  8071.   Proc TIC[MESSAGGIO3$,0] : Print 
  8072.  End If 
  8073.  Print "Oggetto";OGGETTO;":"
  8074.  Print "Nome>";
  8075.  If Btst(1,TIPOO(OGGETTO))=True
  8076.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  8077.  Else 
  8078.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  8079.  End If 
  8080.  Print "Posizione>";
  8081.  If POSIZIONEO(OGGETTO)<0
  8082.   SOGGETTO= Not POSIZIONEO(OGGETTO)
  8083.   If Btst(0,TIPOO(OGGETTO))=True
  8084.    Print "posseduto dal personaggio";SOGGETTO;
  8085.    Print " nome>";NOMEP$(SOGGETTO)
  8086.   Else 
  8087.    Print "contenuto nell'oggetto";SOGGETTO;
  8088.    Print " nome>";
  8089.    If Btst(1,TIPOO(SOGGETTO))=True
  8090.     Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8091.    Else 
  8092.     Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8093.    End If 
  8094.   End If 
  8095.  Else 
  8096.   Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  8097.  End If 
  8098.  If Btst(1,TIPOO(OGGETTO))=True
  8099.   PESOOGGETTO=PESORESTOCO(CATEGORIAO(OGGETTO))
  8100.  Else 
  8101.   PESOOGGETTO=PESOCO(CATEGORIAO(OGGETTO))
  8102.  End If 
  8103.  Print "Peso>";Str$(PESOOGGETTO)-" ";" ";
  8104.  If PESOOGGETTO=1
  8105.   Print "grammo"
  8106.  Else 
  8107.   Print "grammi"
  8108.  End If 
  8109.  If Btst(3,TIPOO(OGGETTO))=True
  8110.   Print "Nascosto"
  8111.  End If 
  8112.  If Btst(1,TIPOO(OGGETTO))=True
  8113.   Print "Resto"
  8114.  End If 
  8115.  If Btst(2,TIPOO(OGGETTO))=True
  8116.   Print "Indossato dal personaggio";SOGGETTO;" nome>";NOMEP$(SOGGETTO)
  8117.  End If 
  8118. End Proc
  8119. Procedure MOSTRAOGGETTOPERINSERIMENTO[P]
  8120.  Repeat 
  8121.   Cls 
  8122.   Print "Nome del personaggio";P;">";NOMEP$(P)
  8123.   Print At(0,ULTIMALINEA-1);"Oggetto";CATEGORIA;">";NOMESCO$(CATEGORIA)
  8124.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli l'oggetto Spazio conferma",ULTIMALINEA]
  8125.   Repeat 
  8126.    TASTOPREMUTO$=Inkey$
  8127.   Until TASTOPREMUTO$<>""
  8128.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  8129.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  8130.  Until TASTOPREMUTO$=" "
  8131. End Proc[CATEGORIA]
  8132. Procedure MOSTRAPERSONAGGIO
  8133.  Cls 
  8134.  If M0DIFICA=False
  8135.   Proc TIC[MESSAGGIO3$,0] : Print 
  8136.  End If 
  8137.  Print "Personaggio";PERSONAGGIO;
  8138.  If PERSONAGGIO=0
  8139.   Print " (personaggio del giocatore):"
  8140.  Else 
  8141.   Print ":"
  8142.  End If 
  8143.  Print "Nome>";NOMEP$(PERSONAGGIO)
  8144.  Print "Posizione>";
  8145.  If POSIZIONEP(PERSONAGGIO)<0
  8146.   SOGGETTO=-1-POSIZIONEP(PERSONAGGIO)
  8147.   If Btst(0,TIPOP(PERSONAGGIO))=True
  8148.    Print "trasportato dal personaggio";SOGGETTO;
  8149.    Print " nome>";NOMEP$(SOGGETTO)
  8150.   Else 
  8151.    Print "contenuto nell'oggetto";SOGGETTO;" nome>";
  8152.    If Btst(1,TIPOO(SOGGETTO))=True
  8153.     Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8154.    Else 
  8155.     Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8156.    End If 
  8157.   End If 
  8158.  Else 
  8159.   If TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)>0
  8160.    Print "In cammino dal luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8161.    Print " al luogo";LUOGODIDESTINAZIONEP(PERSONAGGIO);" nome>";NOMEL$(LUOGODIDESTINAZIONEP(PERSONAGGIO))
  8162.   Else 
  8163.    E=POSIZIONEP(PERSONAGGIO)/$10000
  8164.    If E>0
  8165.     Print "Edificio";E-1;" nome>";NOMEE$(E-1)
  8166.     S=POSIZIONEP(PERSONAGGIO) mod $10000
  8167.     Print "Stanza";S;" nome>";NOMES$(S,E-1)
  8168.    Else 
  8169.     Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8170.    End If 
  8171.   End If 
  8172.  End If 
  8173.  Print "Costituzione>";Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  8174.  If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8175.  Print "Destrezza>";Str$(DESTREZZAP(PERSONAGGIO))-" ";" ";
  8176.  If DESTREZZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8177.  Print "Forza>";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  8178.  If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8179.  PESODELPERSONAGGIO=PESOP(PERSONAGGIO)+PESONETTOP(PERSONAGGIO)/1000
  8180.  Print "Peso>";Str$(PESODELPERSONAGGIO)-" ";" ";
  8181.  If PESODELPERSONAGGIO=1 Then Print "chilo" Else Print "chili"
  8182.  Print "Peso netto>";
  8183.  If PESONETTOP(PERSONAGGIO)>999
  8184.   PESOOEPDELP0=PESONETTOP(PERSONAGGIO)/1000
  8185.   Print Str$(PESOOEPDELP0)-" ";" ";
  8186.   If PESOOEPDELP0=1
  8187.    Print "chilo";
  8188.   Else 
  8189.    Print "chili";
  8190.   End If 
  8191.   PESOOEPDELP0=PESONETTOP(PERSONAGGIO) mod 1000
  8192.   If PESOOEPDELP0>0
  8193.    Print " e";PESOOEPDELP0;" ";
  8194.    If PESOOEPDELP0=1
  8195.     Print "grammo"
  8196.    Else 
  8197.     Print "grammi"
  8198.    End If 
  8199.   Else 
  8200.    Print 
  8201.   End If 
  8202.  Else 
  8203.   PESOOEPDELP0=PESONETTOP(PERSONAGGIO)
  8204.   Print Str$(PESOOEPDELP0)-" ";" ";
  8205.   If PESOOEPDELP0=1
  8206.    Print "grammo"
  8207.   Else 
  8208.    Print "grammi"
  8209.   End If 
  8210.  End If 
  8211.  Print "Resistenza>";Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  8212.  If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8213.  Print "Sesso>";
  8214.  If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  8215.  If PERSONAGGIO>0
  8216.   Print "Condizione>";
  8217.   If Btst(3,TIPOP(PERSONAGGIO))=True
  8218.    Print "Nemic";
  8219.   Else 
  8220.    Print "Amic";
  8221.   End If 
  8222.   If Btst(1,TIPOP(PERSONAGGIO))=True
  8223.    Print "a"
  8224.   Else 
  8225.    Print "o"
  8226.   End If 
  8227.  End If 
  8228.  Print "Soldi>";Str$(SOLDIP(PERSONAGGIO))-" ";" ";
  8229.  If SOLDIP(PERSONAGGIO)=1 Then Print "soldo" Else Print "soldi"
  8230.  If PERSONAGGIO>0
  8231.   Print "Inizio sonno>";
  8232.   _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  8233.   Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  8234.   M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  8235.   Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  8236.   Print "Durata sonno>";Str$(SONNOP(PERSONAGGIO))-" ";" ";
  8237.   If SONNOP(PERSONAGGIO)=1
  8238.    Print "minuto"
  8239.   Else 
  8240.    Print "minuti"
  8241.   End If 
  8242.   For A=0 To 7
  8243.    AZIONE=AZIONEP(A,PERSONAGGIO)
  8244.    PARA=PARAAAZIONEP(A,PERSONAGGIO)
  8245.    PARB=PARABAZIONEP(A,PERSONAGGIO)
  8246.    PARC=PARACAZIONEP(A,PERSONAGGIO)
  8247.    Cline : Print : Cline : Cmove ,-1
  8248.    Print "azione";A+1;">";
  8249.    Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  8250.    Proc FONDOSCHERMOEDITOR
  8251.   Next A
  8252.  End If 
  8253.  If Btst(2,TIPOP(PERSONAGGIO))=True
  8254.   Print "Sta dormendo"
  8255.  End If 
  8256. End Proc
  8257. Procedure MOSTRAREGIONE
  8258.  Cls 
  8259.  If M0DIFICA=False
  8260.   Proc TIC[MESSAGGIO3$,0] : Print 
  8261.  End If 
  8262.  Print "Regione";REGIONE;":"
  8263.  Print "Nome>";NOMER$(REGIONE)
  8264. End Proc
  8265. Procedure MOSTRASTANZA
  8266.  Cls 
  8267.  If M0DIFICA=False
  8268.   Proc TIC[MESSAGGIO3$,0] : Print 
  8269.  End If 
  8270.  Print "Edificio";EDIFICIO;":"
  8271.  Print "Stanza";STANZA;":"
  8272.  Print "Nome>";NOMES$(STANZA,EDIFICIO)
  8273.  DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  8274.  Print "Direzione Nord     >";
  8275.  E=DREZIONE/$10000
  8276.  If E>0
  8277.   S=DREZIONE mod $10000
  8278.   Print "edificio";E;" stanza";S
  8279.  Else 
  8280.   DREZIONE=DREZIONE mod $10000
  8281.   If DREZIONE<$FFFF
  8282.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8283.   Else 
  8284.    Print "nessun luogo"
  8285.   End If 
  8286.  End If 
  8287.  DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  8288.  Print "Direzione NordEst  >";
  8289.  E=DREZIONE/$10000
  8290.  If E>0
  8291.   S=DREZIONE mod $10000
  8292.   Print "edificio";E;" stanza";S
  8293.  Else 
  8294.   DREZIONE=DREZIONE mod $10000
  8295.   If DREZIONE<$FFFF
  8296.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8297.   Else 
  8298.    Print "nessun luogo"
  8299.   End If 
  8300.  End If 
  8301.  DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  8302.  Print "Direzione Est      >";
  8303.  E=DREZIONE/$10000
  8304.  If E>0
  8305.   S=DREZIONE mod $10000
  8306.   Print "edificio";E;" stanza";S
  8307.  Else 
  8308.   DREZIONE=DREZIONE mod $10000
  8309.   If DREZIONE<$FFFF
  8310.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8311.   Else 
  8312.    Print "nessun luogo"
  8313.   End If 
  8314.  End If 
  8315.  DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  8316.  Print "Direzione SudEst   >";
  8317.  E=DREZIONE/$10000
  8318.  If E>0
  8319.   S=DREZIONE mod $10000
  8320.   Print "edificio";E;" stanza";S
  8321.  Else 
  8322.   DREZIONE=DREZIONE mod $10000
  8323.   If DREZIONE<$FFFF
  8324.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8325.   Else 
  8326.    Print "nessun luogo"
  8327.   End If 
  8328.  End If 
  8329.  DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  8330.  Print "Direzione Sud      >";
  8331.  E=DREZIONE/$10000
  8332.  If E>0
  8333.   S=DREZIONE mod $10000
  8334.   Print "edificio";E;" stanza";S
  8335.  Else 
  8336.   DREZIONE=DREZIONE mod $10000
  8337.   If DREZIONE<$FFFF
  8338.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8339.   Else 
  8340.    Print "nessun luogo"
  8341.   End If 
  8342.  End If 
  8343.  DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  8344.  Print "Direzione SudOvest >";
  8345.  E=DREZIONE/$10000
  8346.  If E>0
  8347.   S=DREZIONE mod $10000
  8348.   Print "edificio";E;" stanza";S
  8349.  Else 
  8350.   DREZIONE=DREZIONE mod $10000
  8351.   If DREZIONE<$FFFF
  8352.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8353.   Else 
  8354.    Print "nessun luogo"
  8355.   End If 
  8356.  End If 
  8357.  DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  8358.  Print "Direzione Ovest    >";
  8359.  E=DREZIONE/$10000
  8360.  If E>0
  8361.   S=DREZIONE mod $10000
  8362.   Print "edificio";E;" stanza";S
  8363.  Else 
  8364.   DREZIONE=DREZIONE mod $10000
  8365.   If DREZIONE<$FFFF
  8366.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8367.   Else 
  8368.    Print "nessun luogo"
  8369.   End If 
  8370.  End If 
  8371.  DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  8372.  Print "Direzione NordOvest>";
  8373.  E=DREZIONE/$10000
  8374.  If E>0
  8375.   S=DREZIONE mod $10000
  8376.   Print "edificio";E;" stanza";S
  8377.  Else 
  8378.   DREZIONE=DREZIONE mod $10000
  8379.   If DREZIONE<$FFFF
  8380.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8381.   Else 
  8382.    Print "nessun luogo"
  8383.   End If 
  8384.  End If 
  8385.  DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  8386.  Print "Direzione Sopra    >";
  8387.  E=DREZIONE/$10000
  8388.  If E>0
  8389.   S=DREZIONE mod $10000
  8390.   Print "edificio";E;" stanza";S
  8391.  Else 
  8392.   DREZIONE=DREZIONE mod $10000
  8393.   If DREZIONE<$FFFF
  8394.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8395.   Else 
  8396.    Print "nessun luogo"
  8397.   End If 
  8398.  End If 
  8399.  DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  8400.  Print "Direzione Sotto    >";
  8401.  E=DREZIONE/$10000
  8402.  If E>0
  8403.   S=DREZIONE mod $10000
  8404.   Print "edificio";E;" stanza";S
  8405.  Else 
  8406.   DREZIONE=DREZIONE mod $10000
  8407.   If DREZIONE<$FFFF
  8408.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8409.   Else 
  8410.    Print "nessun luogo"
  8411.   End If 
  8412.  End If 
  8413.  SOLDINELLASTANZA=SOLDIS(STANZA,EDIFICIO)
  8414.  If SOLDINELLASTANZA>0
  8415.   Print Str$(SOLDINELLASTANZA)-" ";" ";
  8416.   If SOLDINELLASTANZA=1
  8417.    Print "soldo"
  8418.   Else 
  8419.    Print "soldi"
  8420.   End If 
  8421.  End If 
  8422. End Proc
  8423. Procedure MUOVITI
  8424.  If F0RZAP(0)+PESOP(0)/10>=PESONETTOP(0)/1000
  8425.   EDIFICIODOVESITROVAILPERSONAGGIO0=POSIZIONEP(0)/$10000
  8426.   If TEMP0DIATTRAVERSAMENTOP(0)=0 or EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8427.    Locate 0,ULTIMALINEA : Input "Dove vuoi andare ?>";DREZIONE$; : Curs Off 
  8428.    DREZIONE$=Lower$(DREZIONE$)
  8429.    If DREZIONE$<>""
  8430.     For A=0 To 9
  8431.      If DREZIONE$=Lower$(DREZIONEL$(A)) or DREZIONE$=Lower$(DREZIONE$(A))
  8432.       If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8433.        S=POSIZIONEP(0) mod $10000
  8434.        If DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0) mod $10000<$FFFF
  8435.         E=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)/$10000
  8436.         Exit 
  8437.        Else 
  8438.         DREZIONE$=Lower$(DREZIONE$(A))
  8439.        End If 
  8440.       Else 
  8441.        If DREZIONEL(A,POSIZIONEP(0)) mod $10000<$FFFF
  8442.         E=DREZIONEL(A,POSIZIONEP(0))/$10000
  8443.         Exit 
  8444.        Else 
  8445.         DREZIONE$=Lower$(DREZIONE$(A))
  8446.        End If 
  8447.       End If 
  8448.      End If 
  8449.     Next A
  8450.     If A<10
  8451.      If E>0
  8452.       If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8453.        POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8454.       Else 
  8455.        POSIZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8456.       End If 
  8457.      Else 
  8458.       If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8459.        POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8460.       Else 
  8461.        LUOGODIDESTINAZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8462.        CAMMINOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))
  8463.        If CAMMINOP(0)=0
  8464.         POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8465.         DREZIONEPRESAP(0)=-1
  8466.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=-1
  8467.        Else 
  8468.         TEMP0DIATTRAVERSAMENTOP(0)=CAMMINOP(0)
  8469.         DREZIONEPRESAP(0)=A
  8470.         If DREZIONEPRESAP(0)=9
  8471.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=8
  8472.         Else If DREZIONEPRESAP(0)=8
  8473.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=9
  8474.         Else If DREZIONEPRESAP(0)<8 and DREZIONEPRESAP(0)>3
  8475.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)-4
  8476.         Else 
  8477.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)+4
  8478.         End If 
  8479.        End If 
  8480.       End If 
  8481.      End If 
  8482.      COMPIUTAAZIONE=1
  8483.      Print At(0,ULTIMALINEA);"Hai deciso di andare ";
  8484.      If A>7
  8485.       Print Lower$(DREZIONE$(A));
  8486.      Else 
  8487.       Print "a ";Lower$(DREZIONE$(A));
  8488.      End If 
  8489.     Else 
  8490.      A=False
  8491.      For B=0 To 9
  8492.       If DREZIONE$=Lower$(DREZIONEL$(B)) or DREZIONE$=Lower$(DREZIONE$(B))
  8493.        A=True
  8494.       End If 
  8495.      Next B
  8496.      If A=True
  8497.       Print At(0,ULTIMALINEA);"Non puoi andare ";
  8498.       If DREZIONE$="sopra" or DREZIONE$="sotto"
  8499.        Print DREZIONE$;
  8500.       Else 
  8501.        Print "a ";DREZIONE$;
  8502.       End If 
  8503.       Print " ";
  8504.       If _MUSICA=False
  8505.        Bell 1
  8506.       End If 
  8507.      Else 
  8508.       Print At(0,ULTIMALINEA);"Non so cosa sia ";DREZIONE$;"   ";
  8509.       If _MUSICA=False
  8510.        Bell 1
  8511.       End If 
  8512.      End If 
  8513.     End If 
  8514.     Proc _ASPETTA
  8515.    End If 
  8516.   Else 
  8517.    Print At(0,ULTIMALINEA);"Vuoi andare avanti (a) o tornare indietro (i) ?";
  8518.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  8519.    If SCELTA$="a"
  8520.     Dec TEMP0DIATTRAVERSAMENTOP(0)
  8521.     If TEMP0DIATTRAVERSAMENTOP(0)=0
  8522.      POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8523.      DREZIONEPRESAP(0)=-1
  8524.      Locate 0,ULTIMALINEA : Cline : Print "Sei arrivato a ";NOMEL$(POSIZIONEP(0));
  8525.     Else 
  8526.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di andare avanti";
  8527.     End If 
  8528.     COMPIUTAAZIONE=1 : Proc _ASPETTA
  8529.    Else If SCELTA$="i"
  8530.     Inc TEMP0DIATTRAVERSAMENTOP(0)
  8531.     If TEMP0DIATTRAVERSAMENTOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))+1
  8532.      Locate 0,ULTIMALINEA : Cline : Print "Sei tornato a ";NOMEL$(POSIZIONEP(0));
  8533.      TEMP0DIATTRAVERSAMENTOP(0)=0
  8534.     Else 
  8535.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di tornare indietro";
  8536.     End If 
  8537.     COMPIUTAAZIONE=1 : Proc _ASPETTA
  8538.    End If 
  8539.   End If 
  8540.  Else 
  8541.   Print At(0,ULTIMALINEA);"Sei troppo pesante, non puoi muoverti";
  8542.   If _MUSICA=False
  8543.    Bell 1
  8544.   End If 
  8545.   Proc _ASPETTA
  8546.  End If 
  8547. End Proc
  8548. Procedure MUOVITIP[AZIONE,P]
  8549.  If PERSONAGGIOVISIBILEP(P)=True Then PERSONAGGIOVISIBILE=True
  8550.  If Btst(2,TIPOP(0))=False Then PERSONAGGIO0SVEGLIO=True
  8551.  If F0RZAP(P)+PESOP(P)/10>=PESONETTOP(P)/1000
  8552.   EDIFICIODOVESITROVAILPERSONAGGIOP=POSIZIONEP(P)/$10000
  8553.   If TEMP0DIATTRAVERSAMENTOP(P)=0 or EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8554.    Do 
  8555.     DREZIONE=Rnd(9)
  8556.     If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8557.      S=POSIZIONEP(P) mod $10000
  8558.      E=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)/$10000
  8559.      Exit If DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP) mod $10000<$FFFF
  8560.     Else 
  8561.      E=DREZIONEL(DREZIONE,POSIZIONEP(P))/$10000
  8562.      Exit If DREZIONEL(DREZIONE,POSIZIONEP(P)) mod $10000<$FFFF
  8563.     End If 
  8564.    Loop 
  8565.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  8566.     Print NOMEP$(P);" sta andando ";
  8567.     If DREZIONE>7
  8568.      Print Lower$(DREZIONE$(DREZIONE))
  8569.     Else 
  8570.      Print "a ";Lower$(DREZIONE$(DREZIONE))
  8571.     End If 
  8572.     Proc FONDOSCHERMOGIOCO
  8573.    End If 
  8574.    If E>0
  8575.     If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8576.      POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8577.     Else 
  8578.      POSIZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8579.     End If 
  8580.     Proc PERSONAGGIOVISIBILE[P]
  8581.     If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8582.      Print NOMEP$(P);" ï¿½ arrivato"
  8583.     End If 
  8584.    Else 
  8585.     If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8586.      POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8587.     Else 
  8588.      LUOGODIDESTINAZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8589.      CAMMINOP(P)=PARATIPOL(TIPOL(POSIZIONEP(P)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(P)))
  8590.      If CAMMINOP(P)=0
  8591.       POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8592.       DREZIONEPRESAP(P)=-1
  8593.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=-1
  8594.      Else 
  8595.       TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)
  8596.       DREZIONEPRESAP(P)=DREZIONE
  8597.       If DREZIONEPRESAP(P)=9
  8598.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=8
  8599.       Else If DREZIONEPRESAP(P)=8
  8600.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=9
  8601.       Else If DREZIONEPRESAP(P)<8 and DREZIONEPRESAP(P)>3
  8602.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)-4
  8603.       Else 
  8604.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)+4
  8605.       End If 
  8606.      End If 
  8607.     End If 
  8608.     Proc PERSONAGGIOVISIBILE[P]
  8609.     If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8610.      Print NOMEP$(P);" ï¿½ arrivato"
  8611.     End If 
  8612.    End If 
  8613.   Else 
  8614.    'Fare DREZIONE=Rnd(1) per far muovere avanti o indietro i personaggi 
  8615.    DREZIONE=1
  8616.    If DREZIONE=1
  8617.     Dec TEMP0DIATTRAVERSAMENTOP(P)
  8618.     If TEMP0DIATTRAVERSAMENTOP(P)=0
  8619.      POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8620.      DREZIONEPRESAP(P)=-1
  8621.      If PERSONAGGIO0SVEGLIO=True
  8622.       If PERSONAGGIOVISIBILE=True
  8623.        Print NOMEP$(P);" sta andando avanti"
  8624.        Proc FONDOSCHERMOGIOCO
  8625.       Else 
  8626.        Proc PERSONAGGIOVISIBILE[P]
  8627.        If PERSONAGGIOVISIBILEP(P)=True
  8628.         Print NOMEP$(P);" ï¿½ arrivato"
  8629.        End If 
  8630.        Proc FONDOSCHERMOGIOCO
  8631.       End If 
  8632.      End If 
  8633.     Else 
  8634.      If PERSONAGGIO0SVEGLIO=True
  8635.       If PERSONAGGIOVISIBILE=True
  8636.        Print NOMEP$(P);" sta andando avanti"
  8637.        Proc FONDOSCHERMOGIOCO
  8638.       Else 
  8639.        Proc PERSONAGGIOVISIBILE[P]
  8640.        If PERSONAGGIOVISIBILEP(P)=True
  8641.         Print NOMEP$(P);" ï¿½ arrivato"
  8642.        End If 
  8643.        Proc FONDOSCHERMOGIOCO
  8644.       End If 
  8645.      End If 
  8646.     End If 
  8647.    Else 
  8648.     Inc TEMP0DIATTRAVERSAMENTOP(P)
  8649.     If TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)+1
  8650.      TEMP0DIATTRAVERSAMENTOP(0)=0
  8651.      DREZIONEPRESAP(P)=-1
  8652.      If PERSONAGGIO0SVEGLIO=True
  8653.       If PERSONAGGIOVISIBILE=True
  8654.        Print NOMEP$(P);" sta tornando indietro"
  8655.        Proc FONDOSCHERMOGIOCO
  8656.       Else 
  8657.        Proc PERSONAGGIOVISIBILE[P]
  8658.        If PERSONAGGIOVISIBILEP(P)=True
  8659.         Print NOMEP$(P);" ï¿½ arrivato"
  8660.        End If 
  8661.        Proc FONDOSCHERMOGIOCO
  8662.       End If 
  8663.      End If 
  8664.     Else 
  8665.      If PERSONAGGIO0SVEGLIO=True
  8666.       If PERSONAGGIOVISIBILE=True
  8667.        Print NOMEP$(P);" sta tornando indietro"
  8668.        Proc FONDOSCHERMOGIOCO
  8669.       Else 
  8670.        Proc PERSONAGGIOVISIBILE[P]
  8671.        If PERSONAGGIOVISIBILEP(P)=True
  8672.         Print NOMEP$(P);" ï¿½ arrivato"
  8673.        End If 
  8674.        Proc FONDOSCHERMOGIOCO
  8675.       End If 
  8676.      End If 
  8677.     End If 
  8678.    End If 
  8679.   End If 
  8680.  Else 
  8681.   If PERSONAGGIOVISIBILE=True
  8682.    Print NOMEP$(P);" ï¿½ troppo pesante, non pu� muoversi"
  8683.    Proc FONDOSCHERMOGIOCO
  8684.   End If 
  8685.  End If 
  8686. End Proc
  8687. Procedure NEMICI[P]
  8688.  DIFESA=-1
  8689.  For A=0 To NUMEROO
  8690.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  8691.    If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  8692.     DIFESA=CATEGORIAO(A) : VLOREDIFESA=PARATIPOCO(DIFESA)
  8693.     Exit 
  8694.    End If 
  8695.   End If 
  8696.  Next A
  8697.  OGGETTOOFFENSIVO=-1
  8698.  For A=0 To NUMEROO
  8699.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and Btst(6,TIPOCO(CATEGORIAO(A)))=True
  8700.    VLORE1OFFENSIVITA=PARATIPOCO(CATEGORIAO(A))
  8701.    If VLORE1OFFENSIVITA>VLORE0OFFENSIVITA
  8702.     OGGETTOOFFENSIVO=CATEGORIAO(A) : VLORE0OFFENSIVITA=VLORE1OFFENSIVITA
  8703.    End If 
  8704.   End If 
  8705.  Next A
  8706.  NEMICI=Min(10,Rnd(TEMP0TRASCORSO/1440)+1)
  8707.  NOMENEMICI=Rnd(27)
  8708.  If P=0 Then Cls 
  8709.  Gosub NEMICI
  8710.  Gosub SCELTASUINEMICI
  8711.  Inc DESTREZZAP(P)
  8712.  Pop Proc
  8713.  COMBATTIMENTOCONINEMICI:
  8714.  NUMEROCOMBATTIMENTO=1
  8715.  Repeat 
  8716.   If P=0
  8717.    Cls 
  8718.    Proc TIC["********** Combattimento numero"+Str$(NUMEROCOMBATTIMENTO)+" **********",0]
  8719.    Print 
  8720.   End If 
  8721.   Gosub TURNODEINEMICI
  8722.   If OGGETTOOFFENSIVO>-1
  8723.    OFFENSIVITA=PARATIPOCO(OGGETTOOFFENSIVO)*5
  8724.   End If 
  8725.   Add OFFENSIVITA,DESTREZZAP(P)
  8726.   Add OFFENSIVITA,F0RZAP(P)
  8727.   OFFENSIVITA=OFFENSIVITA/100
  8728.   Proc LIMITI[OFFENSIVITA,1,NEMICI] : OFFENSIVITA=Param
  8729.   If P=0
  8730.    Print "Hai ucciso";OFFENSIVITA;" ";
  8731.    If OFFENSIVITA=1
  8732.     Print NOMESN$(NOMENEMICI);
  8733.    Else 
  8734.     Print NOMEPN$(NOMENEMICI);
  8735.    End If 
  8736.    Print " ";
  8737.    If OGGETTOOFFENSIVO>-1
  8738.     Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8739.    Else 
  8740.     Print "a mani nude";
  8741.    End If 
  8742.    Print "."
  8743.    Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8744.    Add NEMICI,-OFFENSIVITA
  8745.    If NEMICI=0
  8746.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8747.    Else 
  8748.     Gosub SCELTADOPOILCOMBATTIMENTO
  8749.     Inc NUMEROCOMBATTIMENTO
  8750.    End If 
  8751.   Else 
  8752.    If PERSONAGGIOVISIBILEP(P)=True
  8753.     Print NOMEP$(P);" ha ucciso";OFFENSIVITA;" ";
  8754.     If OFFENSIVITA=1
  8755.      Print NOMESN$(NOMENEMICI);
  8756.     Else 
  8757.      Print NOMEPN$(NOMENEMICI);
  8758.     End If 
  8759.     Print " ";
  8760.     If OGGETTOOFFENSIVO>-1
  8761.      Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8762.     Else 
  8763.      Print "a mani nude";
  8764.     End If 
  8765.     Print "."
  8766.     Proc FONDOSCHERMOGIOCO
  8767.    End If 
  8768.    Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8769.    Add NEMICI,-OFFENSIVITA
  8770.    If NEMICI>0
  8771.     Gosub SCELTADOPOILCOMBATTIMENTO
  8772.     Inc NUMEROCOMBATTIMENTO
  8773.    End If 
  8774.   End If 
  8775.  Until NEMICI=0
  8776.  Return 
  8777.  NEMICI:
  8778.  If P=0
  8779.   If INEMICITISVEGLIANO=True
  8780.    If NEMICI=1
  8781.     Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ha";
  8782.    Else 
  8783.     Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti hanno";
  8784.    End If 
  8785.    Print " svegliato."
  8786.   Else 
  8787.    If NEMICI=1
  8788.     Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ostacola";
  8789.    Else 
  8790.     Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti ostacolano";
  8791.    End If 
  8792.    Print " il cammino."
  8793.   End If 
  8794.  Else 
  8795.   If PERSONAGGIOVISIBILEP(P)=True
  8796.    If INEMICISVEGLIANOPERSONAGGIOP=True
  8797.     If NEMICI=1
  8798.      Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ha svegliato ";NOMEP$(P)
  8799.     Else 
  8800.      Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che hanno svegliato ";NOMEP$(P)
  8801.     End If 
  8802.    Else 
  8803.     If NEMICI=1
  8804.      Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ostacola il cammino a ";NOMEP$(P)
  8805.     Else 
  8806.      Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" ostacolano il cammino a ";NOMEP$(P)
  8807.     End If 
  8808.    End If 
  8809.    Proc FONDOSCHERMOGIOCO
  8810.   End If 
  8811.  End If 
  8812.  Return 
  8813.  MOSTRALARESISTENZADELPERSONAGGIOP:
  8814.  If P=0
  8815.   RESISTENZAP(0)=Max(RESISTENZAP(0),0)
  8816.   Print "La tua resistenza ï¿½ a";RESISTENZAP(0);" punt";
  8817.   If RESISTENZAP(0)=1
  8818.    Print "o"
  8819.   Else 
  8820.    Print "i"
  8821.   End If 
  8822.  Else 
  8823.   If PERSONAGGIOVISIBILEP(P)=True
  8824.    Print "La resistenza di ";NOMEP$(P);" ï¿½ a";RESISTENZAP(0);" punt";
  8825.    If RESISTENZAP(0)=1
  8826.     Print "o"
  8827.    Else 
  8828.     Print "i"
  8829.    End If 
  8830.    Proc FONDOSCHERMOGIOCO
  8831.   End If 
  8832.  End If 
  8833.  Return 
  8834.  SCELTASUINEMICI:
  8835.  If RESISTENZAP(P)=0 Then Pop 
  8836.  If P=0
  8837.   Repeat 
  8838.    Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8839.    SCELTA$=Input$(1)
  8840.   Until SCELTA$="c" or SCELTA$="f"
  8841.   If SCELTA$="c"
  8842.    Gosub COMBATTIMENTOCONINEMICI
  8843.   Else 
  8844.    Gosub TENTALAFUGADAINEMICI
  8845.   End If 
  8846.   If COMBATTIMENTOCONINEMICI=True
  8847.    Gosub COMBATTIMENTOCONINEMICI
  8848.   End If 
  8849.  Else 
  8850.   SCELTA=Rnd(1)
  8851.   If SCELTA=1
  8852.    Gosub COMBATTIMENTOCONINEMICI
  8853.   Else 
  8854.    Gosub TENTALAFUGADAINEMICI
  8855.   End If 
  8856.  End If 
  8857.  Return 
  8858.  SCELTADOPOILCOMBATTIMENTO:
  8859.  If RESISTENZAP(P)=0 Then Pop 
  8860.  If P=0
  8861.   Repeat 
  8862.    Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8863.    SCELTA$=Input$(1)
  8864.   Until SCELTA$="c" or SCELTA$="f"
  8865.   If SCELTA$="f"
  8866.    Gosub TENTALAFUGADAINEMICI
  8867.   End If 
  8868.  Else 
  8869.   SCELTA=Rnd(1)
  8870.   If SCELTA=1
  8871.    Gosub TENTALAFUGADAINEMICI
  8872.   End If 
  8873.  End If 
  8874.  Return 
  8875.  TENTALAFUGADAINEMICI:
  8876.  DESTREZZA=Rnd(99)+1
  8877.  If P=0
  8878.   If DESTREZZA<=DESTREZZAP(0)
  8879.    Cls 
  8880.    Print "La tua destrezza non ï¿½ stata sufficiente per evitare lo scontro!"
  8881.    Gosub TURNODEINEMICI
  8882.    Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8883.    Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8884.    COMBATTIMENTOCONINEMICI=True
  8885.   Else 
  8886.    Cls 
  8887.    Print "Grazie alla tua destrezza hai evitato lo scontro."
  8888.    Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8889.    Pop Proc
  8890.   End If 
  8891.  Else 
  8892.   If PERSONAGGIOVISIBILEP(P)=True
  8893.    If DESTREZZA<=DESTREZZAP(P)
  8894.     Print "La destrezza di ";NOMEP$(P);" non ï¿½ stata sufficiente per evitare lo scontro!"
  8895.     Gosub TURNODEINEMICI
  8896.     Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8897.     COMBATTIMENTOCONINEMICI=True
  8898.    Else 
  8899.     Print "Grazie alla sua destrezza ";NOMEP$(P);" ha evitato lo scontro."
  8900.     Pop Proc
  8901.    End If 
  8902.    Proc FONDOSCHERMOGIOCO
  8903.   End If 
  8904.  End If 
  8905.  Return 
  8906.  TURNODEINEMICI:
  8907.  If P=0
  8908.   For A=1 To NEMICI
  8909.    NEMICO$=NOMESN$(NOMENEMICI)
  8910.    Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8911.    Print NEMICO$;A;
  8912.    DESTREZZA=Rnd(99)+1
  8913.    If DESTREZZA<=DESTREZZAP(0)
  8914.     Print " ha cercato di colpirti, ma tu hai";
  8915.     M0DODESTREZZA=Rnd(1)
  8916.     If M0DODESTREZZA=1
  8917.      Print " schivato";
  8918.     Else 
  8919.      Print " parato";
  8920.     End If 
  8921.     Print " il colpo."
  8922.    Else 
  8923.     If DIFESA>-1
  8924.      DIFESAVALIDA=Rnd(1)
  8925.      If DIFESAVALIDA=1
  8926.       Print " ti ha colpito, ma 1 ";NOMESCO$(DIFESA);" ti ha difes";
  8927.       If Btst(1,TIPOP(0))=True
  8928.        Print "a";
  8929.       Else 
  8930.        Print "o";
  8931.       End If 
  8932.       Print "."
  8933.      Else 
  8934.       Print " ti ha colpito e ti ha fatto una ferita!"
  8935.       FERITA=-(Rnd(2)+1)
  8936.       Add RESISTENZAP(0),FERITA
  8937.      End If 
  8938.     Else 
  8939.      Print " ti ha colpito e ti ha fatto una ferita!"
  8940.      FERITA=-(Rnd(2)+1)
  8941.      Add RESISTENZAP(0),FERITA
  8942.     End If 
  8943.    End If 
  8944.   Next A
  8945.  Else 
  8946.   For A=1 To NEMICI
  8947.    NEMICO$=NOMESN$(NOMENEMICI)
  8948.    Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8949.    If PERSONAGGIOVISIBILEP(P)=True
  8950.     Print NEMICO$;A;
  8951.    End If 
  8952.    DESTREZZA=Rnd(99)+1
  8953.    If DESTREZZA<=DESTREZZAP(P)
  8954.     If PERSONAGGIOVISIBILEP(P)=True
  8955.      Print " ha cercato di colpire ";NOMEP$(P);", ma ";
  8956.      If Btst(1,TIPOP(0))=True
  8957.       Print "lei";
  8958.      Else 
  8959.       Print "lui";
  8960.      End If 
  8961.      Print " ha ";
  8962.      M0DODESTREZZA=Rnd(1)
  8963.      If M0DODESTREZZA=1
  8964.       Print "schivato";
  8965.      Else 
  8966.       Print "parato";
  8967.      End If 
  8968.      Print " il colpo."
  8969.     End If 
  8970.    Else 
  8971.     If DIFESA>-1
  8972.      DIFESAVALIDA=Rnd(1)
  8973.      If DIFESAVALIDA=1
  8974.       If PERSONAGGIOVISIBILEP(P)=True
  8975.        Print " ha colpito ";NOMEP$(P);", ma 1 ";NOMESCO$(DIFESA);" l'ha difes";
  8976.        If Btst(1,TIPOP(0))=True
  8977.         Print "a";
  8978.        Else 
  8979.         Print "o";
  8980.        End If 
  8981.        Print "."
  8982.       End If 
  8983.      Else 
  8984.       If PERSONAGGIOVISIBILEP(P)=True
  8985.        Print " ha colpito ";NOMEP$(P);" e ";
  8986.        If Btst(1,TIPOP(0))=True
  8987.         Print "le";
  8988.        Else 
  8989.         Print "gli";
  8990.        End If 
  8991.        Print " ha fatto una ferita!"
  8992.       End If 
  8993.       FERITA=-(Rnd(2)+1)
  8994.       Add RESISTENZAP(0),FERITA
  8995.      End If 
  8996.     Else 
  8997.      If PERSONAGGIOVISIBILEP(P)=True
  8998.       Print " ha colpito ";NOMEP$(P);" e ";
  8999.       If Btst(1,TIPOP(0))=True
  9000.        Print "le";
  9001.       Else 
  9002.        Print "gli";
  9003.       End If 
  9004.       Print " ha fatto una ferita!"
  9005.      End If 
  9006.      FERITA=-(Rnd(2)+1)
  9007.      Add RESISTENZAP(0),FERITA
  9008.     End If 
  9009.    End If 
  9010.    Proc FONDOSCHERMOGIOCO
  9011.   Next A
  9012.  End If 
  9013.  Return 
  9014. End Proc
  9015. Procedure OGGETTI[M0DO]
  9016.  For A=0 To NUMEROCO
  9017.   OGGETTINELLUOGO(A)=0
  9018.   RESTINELLUOGO(A)=0
  9019.  Next A
  9020.  For A=0 To NUMEROO
  9021.   If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  9022.    If Btst(1,TIPOO(A))=True
  9023.     Inc RESTINELLUOGO(CATEGORIAO(A))
  9024.    Else 
  9025.     Inc OGGETTINELLUOGO(CATEGORIAO(A))
  9026.    End If 
  9027.   End If 
  9028.  Next A
  9029.  If M0DO=True
  9030.   For A=0 To NUMEROCO
  9031.    If OGGETTINELLUOGO(A)>0
  9032.     OGGETTIVISIBILI=True
  9033.    End If 
  9034.    If RESTINELLUOGO(A)>0
  9035.     OGGETTIVISIBILI=True
  9036.    End If 
  9037.   Next A
  9038.   SOLDINELLUOGO=SOLDIL(POSIZIONEP(0))
  9039.   If SOLDINELLUOGO>0
  9040.    OGGETTIVISIBILI=True
  9041.   End If 
  9042.   If OGGETTIVISIBILI=True
  9043.    Print "Oggetti visibili>"
  9044.    Proc FONDOSCHERMOGIOCO
  9045.    For A=0 To NUMEROCO
  9046.     If OGGETTINELLUOGO(A)>0
  9047.      Print Str$(OGGETTINELLUOGO(A))-" ";" ";
  9048.      If OGGETTINELLUOGO(A)=1
  9049.       Print NOMESCO$(A)
  9050.      Else 
  9051.       Print NOMEPCO$(A)
  9052.      End If 
  9053.      Proc FONDOSCHERMOGIOCO
  9054.     End If 
  9055.     If RESTINELLUOGO(A)>0
  9056.      Print Str$(RESTINELLUOGO(A))-" ";" ";
  9057.      If RESTINELLUOGO(A)=1
  9058.       Print NOMESRO$(A)
  9059.      Else 
  9060.       Print NOMEPRO$(A)
  9061.      End If 
  9062.      Proc FONDOSCHERMOGIOCO
  9063.     End If 
  9064.    Next A
  9065.    If SOLDINELLUOGO>0
  9066.     Print Str$(SOLDINELLUOGO)-" ";" ";
  9067.     If SOLDINELLUOGO=1
  9068.      Print "soldo"
  9069.     Else 
  9070.      Print "soldi"
  9071.     End If 
  9072.     Proc FONDOSCHERMOGIOCO
  9073.    End If 
  9074.   Else 
  9075.    Print "Nessun oggetto visibile"
  9076.   End If 
  9077.  End If 
  9078. End Proc
  9079. Procedure OGGETTOOPERSONAGGIOSUCUIUSARE[O]
  9080.  For A=0 To NUMEROCO
  9081.   If OGGETTINELLUOGO(A)>0
  9082.    Inc CATEGORIEOGGETTI
  9083.   End If 
  9084.   If RESTINELLUOGO(A)>0
  9085.    Inc CATEGORIEOGGETTI
  9086.   End If 
  9087.  Next A
  9088.  For A=0 To NUMEROP
  9089.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9090.    Inc PERSONAGGI
  9091.   End If 
  9092.  Next A
  9093.  If CATEGORIEOGGETTI>0 and PERSONAGGI>0
  9094.   Print At(0,ULTIMALINEA);"Vuoi usare su un oggetto o su un personaggio (o/p) ?>";
  9095.   OGGETTOOPERSONAGGIO$=Input$(1)
  9096.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9097.   If OGGETTOOPERSONAGGIO$="o"
  9098.    Proc USASUUNOGGETTO[O]
  9099.   Else If OGGETTOOPERSONAGGIO$="p"
  9100.    Proc USASUUNPERSONAGGIO[O]
  9101.   End If 
  9102.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0
  9103.   Proc USASUUNOGGETTO[O]
  9104.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0
  9105.   Proc USASUUNPERSONAGGIO[O]
  9106.  Else 
  9107.   Print At(0,ULTIMALINEA);"Non ci sono oggetti o personaggi su cui usare 1 ";
  9108.   If Btst(1,TIPOO(O))=True
  9109.    Print NOMESRO$(CATEGORIAO(O));
  9110.   Else 
  9111.    Print NOMESCO$(CATEGORIAO(O));
  9112.   End If 
  9113.   If _MUSICA=False
  9114.    Bell 1
  9115.   End If 
  9116.   Proc _ASPETTA
  9117.  End If 
  9118. End Proc
  9119. Procedure _ORDINALUOGHI[NUMEROLUOGHIMAPPA,LARGHEZZAMAPPALUOGHI,LUOGODIPARTENZA,LIMITI]
  9120.  Dim D(7)
  9121.  D(0)=LARGHEZZAMAPPALUOGHI
  9122.  D(1)=LARGHEZZAMAPPALUOGHI+1
  9123.  D(2)=1
  9124.  D(3)=-LARGHEZZAMAPPALUOGHI+1
  9125.  D(4)=-LARGHEZZAMAPPALUOGHI
  9126.  D(5)=-LARGHEZZAMAPPALUOGHI-1
  9127.  D(6)=-1
  9128.  D(7)=LARGHEZZAMAPPALUOGHI-1
  9129.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9130.   E=DREZIONEL(0,A)/$10000
  9131.   DREZIONEL(0,A)=D(0)+A+E*$10000
  9132.   E=DREZIONEL(1,A)/$10000
  9133.   DREZIONEL(1,A)=D(1)+A+E*$10000
  9134.   E=DREZIONEL(2,A)/$10000
  9135.   DREZIONEL(2,A)=D(2)+A+E*$10000
  9136.   E=DREZIONEL(3,A)/$10000
  9137.   DREZIONEL(3,A)=D(3)+A+E*$10000
  9138.   E=DREZIONEL(4,A)/$10000
  9139.   DREZIONEL(4,A)=D(4)+A+E*$10000
  9140.   E=DREZIONEL(5,A)/$10000
  9141.   DREZIONEL(5,A)=D(5)+A+E*$10000
  9142.   E=DREZIONEL(6,A)/$10000
  9143.   DREZIONEL(6,A)=D(6)+A+E*$10000
  9144.   E=DREZIONEL(7,A)/$10000
  9145.   DREZIONEL(7,A)=D(7)+A+E*$10000
  9146.   E=DREZIONEL(8,A)/$10000
  9147.   DREZIONEL(8,A)=$FFFF+E*$10000
  9148.   E=DREZIONEL(9,A)/$10000
  9149.   DREZIONEL(9,A)=$FFFF+E*$10000
  9150.  Next A
  9151.  If LIMITI=True
  9152.   For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9153.    If A=LUOGODIPARTENZA
  9154.     E=DREZIONEL(0,A)/$10000
  9155.     DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  9156.     E=DREZIONEL(1,A)/$10000
  9157.     DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  9158.     E=DREZIONEL(2,A)/$10000
  9159.     DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  9160.     E=DREZIONEL(3,A)/$10000
  9161.     DREZIONEL(3,A)=$FFFF+E*$10000
  9162.     E=DREZIONEL(4,A)/$10000
  9163.     DREZIONEL(4,A)=$FFFF+E*$10000
  9164.     E=DREZIONEL(5,A)/$10000
  9165.     DREZIONEL(5,A)=$FFFF+E*$10000
  9166.     E=DREZIONEL(6,A)/$10000
  9167.     DREZIONEL(6,A)=$FFFF+E*$10000
  9168.     E=DREZIONEL(7,A)/$10000
  9169.     DREZIONEL(7,A)=$FFFF+E*$10000
  9170.    End If 
  9171.    If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  9172.     If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  9173.      E=DREZIONEL(0,A)/$10000
  9174.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9175.      E=DREZIONEL(1,A)/$10000
  9176.      DREZIONEL(1,A)=$FFFF+E*$10000
  9177.      E=DREZIONEL(2,A)/$10000
  9178.      DREZIONEL(2,A)=$FFFF+E*$10000
  9179.      E=DREZIONEL(3,A)/$10000
  9180.      DREZIONEL(3,A)=$FFFF+E*$10000
  9181.      E=DREZIONEL(4,A)/$10000
  9182.      DREZIONEL(4,A)=$FFFF+E*$10000
  9183.      E=DREZIONEL(5,A)/$10000
  9184.      DREZIONEL(5,A)=$FFFF+E*$10000
  9185.      E=DREZIONEL(6,A)/$10000
  9186.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9187.      E=DREZIONEL(7,A)/$10000
  9188.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9189.     Else 
  9190.      E=DREZIONEL(0,A)/$10000
  9191.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9192.      E=DREZIONEL(1,A)/$10000
  9193.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9194.      E=DREZIONEL(2,A)/$10000
  9195.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9196.      E=DREZIONEL(3,A)/$10000
  9197.      DREZIONEL(3,A)=$FFFF+E*$10000
  9198.      E=DREZIONEL(4,A)/$10000
  9199.      DREZIONEL(4,A)=$FFFF+E*$10000
  9200.      E=DREZIONEL(5,A)/$10000
  9201.      DREZIONEL(5,A)=$FFFF+E*$10000
  9202.      E=DREZIONEL(6,A)/$10000
  9203.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9204.      E=DREZIONEL(7,A)/$10000
  9205.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9206.     End If 
  9207.    End If 
  9208.    For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  9209.     If A=B
  9210.      E=DREZIONEL(0,A)/$10000
  9211.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9212.      E=DREZIONEL(1,A)/$10000
  9213.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9214.      E=DREZIONEL(2,A)/$10000
  9215.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9216.      E=DREZIONEL(3,A)/$10000
  9217.      DREZIONEL(3,A)=D(3)+A+E*$10000
  9218.      E=DREZIONEL(4,A)/$10000
  9219.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9220.      E=DREZIONEL(5,A)/$10000
  9221.      DREZIONEL(5,A)=$FFFF+E*$10000
  9222.      E=DREZIONEL(6,A)/$10000
  9223.      DREZIONEL(6,A)=$FFFF+E*$10000
  9224.      E=DREZIONEL(7,A)/$10000
  9225.      DREZIONEL(7,A)=$FFFF+E*$10000
  9226.     End If 
  9227.     If A=B+LARGHEZZAMAPPALUOGHI-1
  9228.      E=DREZIONEL(0,A)/$10000
  9229.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9230.      E=DREZIONEL(1,A)/$10000
  9231.      DREZIONEL(1,A)=$FFFF+E*$10000
  9232.      E=DREZIONEL(2,A)/$10000
  9233.      DREZIONEL(2,A)=$FFFF+E*$10000
  9234.      E=DREZIONEL(3,A)/$10000
  9235.      DREZIONEL(3,A)=$FFFF+E*$10000
  9236.      E=DREZIONEL(4,A)/$10000
  9237.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9238.      E=DREZIONEL(5,A)/$10000
  9239.      DREZIONEL(5,A)=D(5)+A+E*$10000
  9240.      E=DREZIONEL(6,A)/$10000
  9241.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9242.      E=DREZIONEL(7,A)/$10000
  9243.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9244.     End If 
  9245.    Next B
  9246.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  9247.     E=DREZIONEL(0,A)/$10000
  9248.     DREZIONEL(0,A)=$FFFF+E*$10000
  9249.     E=DREZIONEL(1,A)/$10000
  9250.     DREZIONEL(1,A)=$FFFF+E*$10000
  9251.     E=DREZIONEL(2,A)/$10000
  9252.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9253.     E=DREZIONEL(3,A)/$10000
  9254.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9255.     E=DREZIONEL(4,A)/$10000
  9256.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9257.     E=DREZIONEL(5,A)/$10000
  9258.     DREZIONEL(5,A)=$FFFF+E*$10000
  9259.     E=DREZIONEL(6,A)/$10000
  9260.     DREZIONEL(6,A)=$FFFF+E*$10000
  9261.     E=DREZIONEL(7,A)/$10000
  9262.     DREZIONEL(7,A)=$FFFF+E*$10000
  9263.    End If 
  9264.    If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9265.     E=DREZIONEL(0,A)/$10000
  9266.     DREZIONEL(0,A)=$FFFF+E*$10000
  9267.     E=DREZIONEL(1,A)/$10000
  9268.     DREZIONEL(1,A)=$FFFF+E*$10000
  9269.     E=DREZIONEL(2,A)/$10000
  9270.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9271.     E=DREZIONEL(3,A)/$10000
  9272.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9273.     E=DREZIONEL(4,A)/$10000
  9274.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9275.     E=DREZIONEL(5,A)/$10000
  9276.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9277.     E=DREZIONEL(6,A)/$10000
  9278.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9279.     E=DREZIONEL(7,A)/$10000
  9280.     DREZIONEL(7,A)=$FFFF+E*$10000
  9281.    End If 
  9282.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9283.     E=DREZIONEL(0,A)/$10000
  9284.     DREZIONEL(0,A)=$FFFF+E*$10000
  9285.     E=DREZIONEL(1,A)/$10000
  9286.     DREZIONEL(1,A)=$FFFF+E*$10000
  9287.     E=DREZIONEL(2,A)/$10000
  9288.     DREZIONEL(2,A)=$FFFF+E*$10000
  9289.     E=DREZIONEL(3,A)/$10000
  9290.     DREZIONEL(3,A)=$FFFF+E*$10000
  9291.     E=DREZIONEL(4,A)/$10000
  9292.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9293.     E=DREZIONEL(5,A)/$10000
  9294.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9295.     E=DREZIONEL(6,A)/$10000
  9296.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9297.     E=DREZIONEL(7,A)/$10000
  9298.     DREZIONEL(7,A)=$FFFF+E*$10000
  9299.    End If 
  9300.   Next A
  9301.  Else 
  9302.   For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9303.    If A=LUOGODIPARTENZA
  9304.     E=DREZIONEL(0,A)/$10000
  9305.     DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  9306.     E=DREZIONEL(1,A)/$10000
  9307.     DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  9308.     E=DREZIONEL(2,A)/$10000
  9309.     DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  9310.     E=DREZIONEL(3,A)/$10000
  9311.     DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  9312.     E=DREZIONEL(4,A)/$10000
  9313.     DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9314.     E=DREZIONEL(5,A)/$10000
  9315.     DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  9316.     E=DREZIONEL(6,A)/$10000
  9317.     DREZIONEL(6,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9318.     E=DREZIONEL(7,A)/$10000
  9319.     DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  9320.    End If 
  9321.    If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  9322.     If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  9323.      E=DREZIONEL(0,A)/$10000
  9324.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9325.      E=DREZIONEL(1,A)/$10000
  9326.      DREZIONEL(1,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI+E*$10000
  9327.      E=DREZIONEL(2,A)/$10000
  9328.      DREZIONEL(2,A)=LUOGODIPARTENZA+E*$10000
  9329.      E=DREZIONEL(3,A)/$10000
  9330.      DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9331.      E=DREZIONEL(4,A)/$10000
  9332.      DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  9333.      E=DREZIONEL(5,A)/$10000
  9334.      DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-1+E*$10000
  9335.      E=DREZIONEL(6,A)/$10000
  9336.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9337.      E=DREZIONEL(7,A)/$10000
  9338.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9339.     Else 
  9340.      E=DREZIONEL(0,A)/$10000
  9341.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9342.      E=DREZIONEL(1,A)/$10000
  9343.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9344.      E=DREZIONEL(2,A)/$10000
  9345.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9346.      E=DREZIONEL(3,A)/$10000
  9347.      DREZIONEL(3,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  9348.      E=DREZIONEL(4,A)/$10000
  9349.      DREZIONEL(4,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9350.      E=DREZIONEL(5,A)/$10000
  9351.      DREZIONEL(5,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+E*$10000
  9352.      E=DREZIONEL(6,A)/$10000
  9353.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9354.      E=DREZIONEL(7,A)/$10000
  9355.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9356.     End If 
  9357.    End If 
  9358.    For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  9359.     If A=B
  9360.      E=DREZIONEL(0,A)/$10000
  9361.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9362.      E=DREZIONEL(1,A)/$10000
  9363.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9364.      E=DREZIONEL(2,A)/$10000
  9365.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9366.      E=DREZIONEL(3,A)/$10000
  9367.      DREZIONEL(3,A)=D(3)+A+E*$10000
  9368.      E=DREZIONEL(4,A)/$10000
  9369.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9370.      E=DREZIONEL(5,A)/$10000
  9371.      DREZIONEL(5,A)=A-1+E*$10000
  9372.      E=DREZIONEL(6,A)/$10000
  9373.      DREZIONEL(6,A)=A+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9374.      E=DREZIONEL(7,A)/$10000
  9375.      DREZIONEL(7,A)=A+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  9376.     End If 
  9377.     If A=B+LARGHEZZAMAPPALUOGHI-1
  9378.      E=DREZIONEL(0,A)/$10000
  9379.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9380.      E=DREZIONEL(1,A)/$10000
  9381.      DREZIONEL(1,A)=A+1+E*$10000
  9382.      E=DREZIONEL(2,A)/$10000
  9383.      DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9384.      E=DREZIONEL(3,A)/$10000
  9385.      DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  9386.      E=DREZIONEL(4,A)/$10000
  9387.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9388.      E=DREZIONEL(5,A)/$10000
  9389.      DREZIONEL(5,A)=D(5)+A+E*$10000
  9390.      E=DREZIONEL(6,A)/$10000
  9391.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9392.      E=DREZIONEL(7,A)/$10000
  9393.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9394.     End If 
  9395.    Next B
  9396.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  9397.     E=DREZIONEL(0,A)/$10000
  9398.     DREZIONEL(0,A)=LUOGODIPARTENZA+E*$10000
  9399.     E=DREZIONEL(1,A)/$10000
  9400.     DREZIONEL(1,A)=LUOGODIPARTENZA+1+E*$10000
  9401.     E=DREZIONEL(2,A)/$10000
  9402.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9403.     E=DREZIONEL(3,A)/$10000
  9404.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9405.     E=DREZIONEL(4,A)/$10000
  9406.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9407.     E=DREZIONEL(5,A)/$10000
  9408.     DREZIONEL(5,A)=A-1+E*$10000
  9409.     E=DREZIONEL(6,A)/$10000
  9410.     DREZIONEL(6,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  9411.     E=DREZIONEL(7,A)/$10000
  9412.     DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9413.    End If 
  9414.    If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9415.     E=DREZIONEL(0,A)/$10000
  9416.     DREZIONEL(0,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9417.     E=DREZIONEL(1,A)/$10000
  9418.     DREZIONEL(1,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI+E*$10000
  9419.     E=DREZIONEL(2,A)/$10000
  9420.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9421.     E=DREZIONEL(3,A)/$10000
  9422.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9423.     E=DREZIONEL(4,A)/$10000
  9424.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9425.     E=DREZIONEL(5,A)/$10000
  9426.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9427.     E=DREZIONEL(6,A)/$10000
  9428.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9429.     E=DREZIONEL(7,A)/$10000
  9430.     DREZIONEL(7,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  9431.    End If 
  9432.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9433.     E=DREZIONEL(0,A)/$10000
  9434.     DREZIONEL(0,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9435.     E=DREZIONEL(1,A)/$10000
  9436.     DREZIONEL(1,A)=LUOGODIPARTENZA+E*$10000
  9437.     E=DREZIONEL(2,A)/$10000
  9438.     DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9439.     E=DREZIONEL(3,A)/$10000
  9440.     DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  9441.     E=DREZIONEL(4,A)/$10000
  9442.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9443.     E=DREZIONEL(5,A)/$10000
  9444.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9445.     E=DREZIONEL(6,A)/$10000
  9446.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9447.     E=DREZIONEL(7,A)/$10000
  9448.     DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  9449.    End If 
  9450.   Next A
  9451.  End If 
  9452. End Proc
  9453. Procedure _ORDINASTANZE[E,NUMEROSTANZEMAPPA,LARGHEZZAMAPPASTANZE,STANZADIPARTENZA]
  9454.  Dim D(7)
  9455.  D(0)=LARGHEZZAMAPPASTANZE
  9456.  D(1)=LARGHEZZAMAPPASTANZE+1
  9457.  D(2)=1
  9458.  D(3)=-LARGHEZZAMAPPASTANZE+1
  9459.  D(4)=-LARGHEZZAMAPPASTANZE
  9460.  D(5)=-LARGHEZZAMAPPASTANZE-1
  9461.  D(6)=-1
  9462.  D(7)=LARGHEZZAMAPPASTANZE-1
  9463.  For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9464.   DREZIONES(0,A,E)=D(0)+A+E*$10000
  9465.   DREZIONES(1,A,E)=D(1)+A+E*$10000
  9466.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  9467.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  9468.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  9469.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  9470.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  9471.   DREZIONES(7,A,E)=D(7)+A+E*$10000
  9472.   DREZIONES(8,A,E)=$FFFF+E*$10000
  9473.   DREZIONES(9,A,E)=$FFFF+E*$10000
  9474.  Next A
  9475.  For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9476.   If A=STANZADIPARTENZA
  9477.    DREZIONES(0,A,E)=D(0)+STANZADIPARTENZA+E*$10000
  9478.    DREZIONES(1,A,E)=D(1)+STANZADIPARTENZA+E*$10000
  9479.    DREZIONES(2,A,E)=D(2)+STANZADIPARTENZA+E*$10000
  9480.    DREZIONES(3,A,E)=$FFFF+E*$10000
  9481.    DREZIONES(4,A,E)=$FFFF+E*$10000
  9482.    DREZIONES(5,A,E)=$FFFF+E*$10000
  9483.    DREZIONES(6,A,E)=$FFFF+E*$10000
  9484.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9485.   End If 
  9486.   If A>STANZADIPARTENZA and A<STANZADIPARTENZA+LARGHEZZAMAPPASTANZE
  9487.    If A=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE-1
  9488.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9489.     DREZIONES(1,A,E)=$FFFF+E*$10000
  9490.     DREZIONES(2,A,E)=$FFFF+E*$10000
  9491.     DREZIONES(3,A,E)=$FFFF+E*$10000
  9492.     DREZIONES(4,A,E)=$FFFF+E*$10000
  9493.     DREZIONES(5,A,E)=$FFFF+E*$10000
  9494.     DREZIONES(6,A,E)=D(6)+A+E*$10000
  9495.     DREZIONES(7,A,E)=D(7)+A+E*$10000
  9496.    Else 
  9497.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9498.     DREZIONES(1,A,E)=D(1)+A+E*$10000
  9499.     DREZIONES(2,A,E)=D(2)+A+E*$10000
  9500.     DREZIONES(3,A,E)=$FFFF+E*$10000
  9501.     DREZIONES(4,A,E)=$FFFF+E*$10000
  9502.     DREZIONES(5,A,E)=$FFFF+E*$10000
  9503.     DREZIONES(6,A,E)=D(6)+A+E*$10000
  9504.     DREZIONES(7,A,E)=D(7)+A+E*$10000
  9505.    End If 
  9506.   End If 
  9507.   For B=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE To STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE Step LARGHEZZAMAPPASTANZE
  9508.    If A=B
  9509.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9510.     DREZIONES(1,A,E)=D(1)+A+E*$10000
  9511.     DREZIONES(2,A,E)=D(2)+A+E*$10000
  9512.     DREZIONES(3,A,E)=D(3)+A+E*$10000
  9513.     DREZIONES(4,A,E)=D(4)+A+E*$10000
  9514.     DREZIONES(5,A,E)=$FFFF+E*$10000
  9515.     DREZIONES(6,A,E)=$FFFF+E*$10000
  9516.     DREZIONES(7,A,E)=$FFFF+E*$10000
  9517.    End If 
  9518.    If A=B+LARGHEZZAMAPPASTANZE-1
  9519.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9520.     DREZIONES(1,A,E)=$FFFF+E*$10000
  9521.     DREZIONES(2,A,E)=$FFFF+E*$10000
  9522.     DREZIONES(3,A,E)=$FFFF+E*$10000
  9523.     DREZIONES(4,A,E)=D(4)+A+E*$10000
  9524.     DREZIONES(5,A,E)=D(5)+A+E*$10000
  9525.     DREZIONES(6,A,E)=D(6)+A+E*$10000
  9526.     DREZIONES(7,A,E)=D(7)+A+E*$10000
  9527.    End If 
  9528.   Next B
  9529.   If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1
  9530.    DREZIONES(0,A,E)=$FFFF+E*$10000
  9531.    DREZIONES(1,A,E)=$FFFF+E*$10000
  9532.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  9533.    DREZIONES(3,A,E)=D(3)+A+E*$10000
  9534.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  9535.    DREZIONES(5,A,E)=$FFFF+E*$10000
  9536.    DREZIONES(6,A,E)=$FFFF+E*$10000
  9537.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9538.   End If 
  9539.   If A>STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1 and A<STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9540.    DREZIONES(0,A,E)=$FFFF+E*$10000
  9541.    DREZIONES(1,A,E)=$FFFF+E*$10000
  9542.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  9543.    DREZIONES(3,A,E)=D(3)+A+E*$10000
  9544.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  9545.    DREZIONES(5,A,E)=D(5)+A+E*$10000
  9546.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  9547.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9548.   End If 
  9549.   If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9550.    DREZIONES(0,A,E)=$FFFF+E*$10000
  9551.    DREZIONES(1,A,E)=$FFFF+E*$10000
  9552.    DREZIONES(2,A,E)=$FFFF+E*$10000
  9553.    DREZIONES(3,A,E)=$FFFF+E*$10000
  9554.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  9555.    DREZIONES(5,A,E)=D(5)+A+E*$10000
  9556.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  9557.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9558.   End If 
  9559.  Next A
  9560. End Proc
  9561. Procedure PERSONAGGI
  9562.  For A=1 To NUMEROP
  9563.   Proc PERSONAGGIOVISIBILE[A]
  9564.   If PERSONAGGIOVISIBILEP(A)=True Then PERSONAGGIVISIBILI=True
  9565.  Next A
  9566.  If PERSONAGGIVISIBILI=True
  9567.   Print "Personaggi visibili>"
  9568.   Proc FONDOSCHERMOGIOCO
  9569.   For A=1 To NUMEROP
  9570.    If PERSONAGGIOVISIBILEP(A)=True
  9571.     If RESISTENZAP(A)=0
  9572.      Print "Il cadavere di ";NOMEP$(A);
  9573.      If Btst(1,TIPOP(A))=True
  9574.       Print "@"
  9575.      Else 
  9576.       Print 
  9577.      End If 
  9578.     Else 
  9579.      Print NOMEP$(A);
  9580.      If Btst(1,TIPOP(A))=True
  9581.       Print "@";
  9582.      End If 
  9583.      If Btst(2,TIPOP(A))=True
  9584.       Print " dormiente"
  9585.      Else 
  9586.       Print 
  9587.      End If 
  9588.     End If 
  9589.    End If 
  9590.    Proc FONDOSCHERMOGIOCO
  9591.   Next A
  9592.  Else 
  9593.   Print "Nessun personaggio visibile"
  9594.  End If 
  9595. End Proc
  9596. Procedure PERSONAGGIORICEVENTE[TIPO$,NUMERO]
  9597.  For A=1 To NUMEROP
  9598.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIPRESENTI
  9599.  Next A
  9600.  If PERSONAGGIPRESENTI>1
  9601.   Locate 0,ULTIMALINEA : Input "A chi vuoi dare ?>";PERSONAGGIO$;
  9602.   Curs Off 
  9603.   If PERSONAGGIO$<>""
  9604.    For A=1 To NUMEROP
  9605.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A))
  9606.      If TIPO$="O"
  9607.       POSIZIONEO(NUMERO)=-1-A
  9608.       If Btst(1,TIPOO(NUMERO))=True
  9609.        Dec RESTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9610.        Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9611.        Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9612.       Else 
  9613.        Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9614.        Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9615.        Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9616.        Inc OGGETTODATOOLASCIATO(CATEGORIAO(NUMERO))
  9617.       End If 
  9618.       If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9619.        For B=0 To NUMEROO
  9620.         If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9621.          If Btst(1,TIPOO(B))=True
  9622.           Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(B))
  9623.           Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(B))
  9624.          Else 
  9625.           Add PESONETTOP(0),-PESOCO(CATEGORIAO(B))
  9626.           Add PESONETTOP(A),PESOCO(CATEGORIAO(B))
  9627.          End If 
  9628.         End If 
  9629.        Next B
  9630.        For B=1 To NUMEROP
  9631.         If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9632.          Add PESONETTOP(0),-PESOP(B)*1000
  9633.          Add PESONETTOP(0),-PESONETTOP(B)
  9634.          Add PESONETTOP(A),PESOP(B)*1000
  9635.          Add PESONETTOP(A),PESONETTOP(B)
  9636.         End If 
  9637.        Next B
  9638.       End If 
  9639.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9640.       Print "Hai deciso di dare 1 ";
  9641.       If Btst(1,TIPOO(NUMERO))=True
  9642.        Print NOMESRO$(CATEGORIAO(NUMERO));
  9643.       Else 
  9644.        Print NOMESCO$(CATEGORIAO(NUMERO));
  9645.       End If 
  9646.      Else If TIPO$="P"
  9647.       POSIZIONEP(NUMERO)=-1-A
  9648.       Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9649.       Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9650.       Add PESONETTOP(A),PESOP(NUMERO)*1000
  9651.       Add PESONETTOP(A),PESONETTOP(NUMERO)
  9652.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9653.       Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9654.      Else If TIPO$="S"
  9655.       Add SOLDIP(A),NUMERO
  9656.       Add SOLDIRICEVUTIP(A),NUMERO
  9657.       Add PESONETTOP(0),-NUMERO*PESOS
  9658.       Add PESONETTOP(A),NUMERO*PESOS
  9659.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9660.       Print "Hai deciso di dare";NUMERO;
  9661.       If NUMERO=1
  9662.        Print " soldo";
  9663.       Else 
  9664.        Print " soldi";
  9665.       End If 
  9666.      End If 
  9667.      Print " a ";NOMEP$(A);
  9668.      Proc _ASPETTA
  9669.      Exit 
  9670.     End If 
  9671.    Next A
  9672.    If A=NUMEROP+1
  9673.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9674.     If _MUSICA=False
  9675.      Bell 1
  9676.     End If 
  9677.     Proc _ASPETTA
  9678.    End If 
  9679.   End If 
  9680.  Else 
  9681.   For A=1 To NUMEROP
  9682.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9683.     If TIPO$="O"
  9684.      POSIZIONEO(NUMERO)=-1-A
  9685.      If Btst(1,TIPOO(NUMERO))=True
  9686.       Dec RESTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9687.       Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9688.       Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9689.      Else 
  9690.       Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9691.       Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9692.       Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9693.       Inc OGGETTODATOOLASCIATO(CATEGORIAO(NUMERO))
  9694.      End If 
  9695.      If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9696.       For B=0 To NUMEROO
  9697.        If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9698.         If Btst(1,TIPOO(B))=True
  9699.          Add PESONETTOP(A),-PESORESTOCO(CATEGORIAO(B))
  9700.         Else 
  9701.          Add PESONETTOP(A),-PESOCO(CATEGORIAO(B))
  9702.         End If 
  9703.        End If 
  9704.       Next B
  9705.       For B=1 To NUMEROP
  9706.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9707.         Add PESONETTOP(A),-PESOP(B)*1000
  9708.         Add PESONETTOP(A),-PESONETTOP(B)
  9709.        End If 
  9710.       Next B
  9711.      End If 
  9712.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9713.      Print "Hai deciso di dare 1 ";
  9714.      If Btst(1,TIPOO(NUMERO))=True
  9715.       Print NOMESRO$(CATEGORIAO(NUMERO));
  9716.      Else 
  9717.       Print NOMESCO$(CATEGORIAO(NUMERO));
  9718.      End If 
  9719.     Else If TIPO$="P"
  9720.      POSIZIONEP(NUMERO)=-1-A
  9721.      Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9722.      Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9723.      Add PESONETTOP(A),PESOP(NUMERO)*1000
  9724.      Add PESONETTOP(A),PESONETTOP(NUMERO)
  9725.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9726.      Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9727.     Else If TIPO$="S"
  9728.      Add SOLDIP(A),NUMERO
  9729.      Add SOLDIRICEVUTIP(A),NUMERO
  9730.      Add PESONETTOP(0),-NUMERO*PESOS
  9731.      Add PESONETTOP(A),NUMERO*PESOS
  9732.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9733.      Print "Hai deciso di dare";NUMERO;
  9734.      If NUMERO=1
  9735.       Print " soldo";
  9736.      Else 
  9737.       Print " soldi";
  9738.      End If 
  9739.     End If 
  9740.     Print " a ";NOMEP$(A);
  9741.     Proc _ASPETTA
  9742.    End If 
  9743.   Next A
  9744.  End If 
  9745. End Proc
  9746. Procedure PERSONAGGIOVISIBILE[P]
  9747.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9748.   PERSONAGGIOVISIBILEP(P)=True
  9749.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  9750.   PERSONAGGIOVISIBILEP(P)=True
  9751.  Else 
  9752.   PERSONAGGIOVISIBILEP(P)=False
  9753.  End If 
  9754. End Proc
  9755. Procedure PRENDI
  9756.  If TEMP0DIATTRAVERSAMENTOP(0)>0
  9757.   For A=1 To NUMEROP
  9758.    If PERSONAGGIOVISIBILEP(A)=True
  9759.     Inc PERSONAGGI
  9760.    End If 
  9761.   Next A
  9762.   If PERSONAGGI>0
  9763.    Proc PRENDIUNPERSONAGGIO
  9764.   Else 
  9765.    Print At(0,ULTIMALINEA);"Non ci sono personaggi da prendere";
  9766.    If _MUSICA=False
  9767.     Bell 1
  9768.    End If 
  9769.    Proc _ASPETTA
  9770.    Pop Proc
  9771.   End If 
  9772.  Else 
  9773.   For A=1 To NUMEROP
  9774.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9775.     Inc PERSONAGGI
  9776.    End If 
  9777.   Next A
  9778.  End If 
  9779.  For A=0 To NUMEROCO
  9780.   If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9781.   If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9782.  Next A
  9783.  If SOLDIL(POSIZIONEP(0))>0
  9784.   SOLDI=True
  9785.  End If 
  9786.  If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  9787.   Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  9788.   OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  9789.   OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  9790.   If OGGETTOPERSONAGGIOOSOLDI$="o"
  9791.    Proc PRENDIUNOGGETTO
  9792.   Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  9793.    Proc PRENDIUNPERSONAGGIO
  9794.   Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  9795.    Proc PRENDIDEISOLDI
  9796.   End If 
  9797.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  9798.   Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto o dei soldi (o/s) ?>";
  9799.   OGGETTOOSOLDI$=Input$(1)
  9800.   OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  9801.   If OGGETTOOSOLDI$="o"
  9802.    Proc PRENDIUNOGGETTO
  9803.   Else If OGGETTOOSOLDI$="s"
  9804.    Proc PRENDIDEISOLDI
  9805.   End If 
  9806.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  9807.   Print At(0,ULTIMALINEA);"Vuoi prendere un personaggio o dei soldi (p/s) ?>";
  9808.   PERSONAGGIOOSOLDI$=Input$(1)
  9809.   PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  9810.   If PERSONAGGIOOSOLDI$="p"
  9811.    Proc PRENDIUNPERSONAGGIO
  9812.   Else If PERSONAGGIOOSOLDI$="s"
  9813.    Proc PRENDIDEISOLDI
  9814.   End If 
  9815.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  9816.   Proc PRENDIDEISOLDI
  9817.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  9818.   Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto od un personaggio (o/p) ?>";
  9819.   OGGETTOOPERSONAGGIO$=Input$(1)
  9820.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9821.   If OGGETTOOPERSONAGGIO$="o"
  9822.    Proc PRENDIUNOGGETTO
  9823.   Else If OGGETTOOPERSONAGGIO$="p"
  9824.    Proc PRENDIUNPERSONAGGIO
  9825.   End If 
  9826.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  9827.   Proc PRENDIUNOGGETTO
  9828.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  9829.   Proc PRENDIUNPERSONAGGIO
  9830.  Else 
  9831.   Print At(0,ULTIMALINEA);"Non ci sono oggetti,personaggi o soldi da prendere";
  9832.   If _MUSICA=False
  9833.    Bell 1
  9834.   End If 
  9835.   Proc _ASPETTA
  9836.  End If 
  9837. End Proc
  9838. Procedure PRENDIAO[AZIONE,P]
  9839.  If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9840.  NUMEROOGGETTODELPERSONAGGIOP=-1
  9841.  For A=0 To NUMEROO
  9842.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9843.    Inc NUMEROOGGETTODELPERSONAGGIOP
  9844.    B=A
  9845.   End If 
  9846.  Next A
  9847.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  9848.   Pop Proc
  9849.  End If 
  9850.  If NUMEROOGGETTODELPERSONAGGIOP=0
  9851.   A=B
  9852.  Else 
  9853.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  9854.   B=0
  9855.   For A=0 To NUMEROO
  9856.    If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9857.     OGGETTODELPERSONAGGIOP(B)=A
  9858.     Inc B
  9859.    End If 
  9860.   Next A
  9861.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  9862.  End If 
  9863.  POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9864.  If Btst(1,TIPOO(A))=True
  9865.   Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9866.  Else 
  9867.   Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9868.  End If 
  9869.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9870.   For B=0 To NUMEROO
  9871.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9872.     If Btst(1,TIPOO(B))=True
  9873.      Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9874.     Else 
  9875.      Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9876.     End If 
  9877.    End If 
  9878.   Next B
  9879.   For B=1 To NUMEROP
  9880.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9881.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9882.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9883.    End If 
  9884.   Next B
  9885.  End If 
  9886.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9887.   Print NOMEP$(P);" prende 1 ";
  9888.   If Btst(1,TIPOO(A))=True
  9889.    Print NOMESRO$(CATEGORIAO(A))
  9890.   Else 
  9891.    Print NOMESCO$(CATEGORIAO(A))
  9892.   End If 
  9893.  End If 
  9894.  Dec PARAAAZIONEP(AZIONE,P)
  9895.  If PARAAAZIONEP(AZIONE,P)=0
  9896.   FINEA(AZIONE,P)=True
  9897.  End If 
  9898. End Proc
  9899. Procedure PRENDIAOB[AZIONE,P]
  9900.  If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9901.  NUMEROOGGETTODELPERSONAGGIOP=-1
  9902.  For A=0 To NUMEROO
  9903.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9904.    Inc NUMEROOGGETTODELPERSONAGGIOP
  9905.    B=A
  9906.   End If 
  9907.  Next A
  9908.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  9909.   Pop Proc
  9910.  End If 
  9911.  If NUMEROOGGETTODELPERSONAGGIOP=0
  9912.   A=B
  9913.  Else 
  9914.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  9915.   B=0
  9916.   For A=0 To NUMEROO
  9917.    If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9918.     OGGETTODELPERSONAGGIOP(B)=A
  9919.     Inc B
  9920.    End If 
  9921.   Next A
  9922.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  9923.  End If 
  9924.  POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9925.  If Btst(1,TIPOO(A))=True
  9926.   Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9927.  Else 
  9928.   Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9929.  End If 
  9930.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9931.   For B=0 To NUMEROO
  9932.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9933.     If Btst(1,TIPOO(B))=True
  9934.      Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9935.     Else 
  9936.      Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9937.     End If 
  9938.    End If 
  9939.   Next B
  9940.   For B=1 To NUMEROP
  9941.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9942.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9943.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9944.    End If 
  9945.   Next B
  9946.  End If 
  9947.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9948.   Print NOMEP$(P);" prende 1 ";
  9949.   If Btst(1,TIPOO(A))=True
  9950.    Print NOMESRO$(CATEGORIAO(A))
  9951.   Else 
  9952.    Print NOMESCO$(CATEGORIAO(A))
  9953.   End If 
  9954.  End If 
  9955.  Dec PARAAAZIONEP(AZIONE,P)
  9956.  If PARAAAZIONEP(AZIONE,P)=0
  9957.   FINEA(AZIONE,P)=True
  9958.  End If 
  9959. End Proc
  9960. Procedure PRENDIAOTB[AZIONE,P]
  9961.  If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9962.  NUMEROOGGETTODELPERSONAGGIOP=-1
  9963.  For A=0 To NUMEROO
  9964.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9965.    Inc NUMEROOGGETTODELPERSONAGGIOP
  9966.    B=A
  9967.   End If 
  9968.  Next A
  9969.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  9970.   Pop Proc
  9971.  End If 
  9972.  If NUMEROOGGETTODELPERSONAGGIOP=0
  9973.   A=B
  9974.  Else 
  9975.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  9976.   B=0
  9977.   For A=0 To NUMEROO
  9978.    If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9979.     OGGETTODELPERSONAGGIOP(B)=A
  9980.     Inc B
  9981.    End If 
  9982.   Next A
  9983.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  9984.  End If 
  9985.  POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9986.  If Btst(1,TIPOO(A))=True
  9987.   Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9988.  Else 
  9989.   Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9990.  End If 
  9991.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9992.   For B=0 To NUMEROO
  9993.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9994.     If Btst(1,TIPOO(B))=True
  9995.      Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9996.     Else 
  9997.      Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9998.     End If 
  9999.    End If 
  10000.   Next B
  10001.   For B=1 To NUMEROP
  10002.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  10003.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  10004.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  10005.    End If 
  10006.   Next B
  10007.  End If 
  10008.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  10009.   Print NOMEP$(P);" prende 1 ";
  10010.   If Btst(1,TIPOO(A))=True
  10011.    Print NOMESRO$(CATEGORIAO(A))
  10012.   Else 
  10013.    Print NOMESCO$(CATEGORIAO(A))
  10014.   End If 
  10015.  End If 
  10016.  Dec PARAAAZIONEP(AZIONE,P)
  10017.  If PARAAAZIONEP(AZIONE,P)=0
  10018.   FINEA(AZIONE,P)=True
  10019.  End If 
  10020. End Proc
  10021. Procedure PRENDIAP[AZIONE,P]
  10022.  For A=1 To NUMEROP
  10023.   If POSIZIONEP(A)=POSIZIONEP(P) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(P) and DREZIONEPRESAP(A)=DREZIONEPRESAP(P)
  10024.    POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  10025.    Add PESONETTOP(P),PESOP(A)*1000
  10026.    Add PESONETTOP(P),PESONETTOP(A)
  10027.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  10028.     Print NOMEP$(P);" prende ";NOMEP$(A)
  10029.    End If 
  10030.    Dec PARABAZIONEP(AZIONE,P)
  10031.    If PARABAZIONEP(AZIONE,P)=0
  10032.     FINEA(AZIONE,P)=True
  10033.    End If 
  10034.    Exit 
  10035.   End If 
  10036.  Next A
  10037. End Proc
  10038. Procedure PRENDIDEISOLDI
  10039.  Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi prendere (0-"+Str$(SOLDIL(POSIZIONEP(0)))-" "+") ?>";SOLDI$;
  10040.  Curs Off 
  10041.  If SOLDI$<>""
  10042.   SOLDI=Val(SOLDI$)
  10043.   Proc LIMITI[SOLDI,0,SOLDIL(POSIZIONEP(0))] : SOLDI=Param
  10044.   If SOLDI>0
  10045.    Add SOLDIP(0),SOLDI
  10046.    Add SOLDIL(POSIZIONEP(0)),-SOLDI
  10047.    Add PESONETTOP(0),SOLDI*PESOS
  10048.    COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10049.    Print "Hai deciso di prendere";SOLDI;
  10050.    If SOLDI=1
  10051.     Print " soldo";
  10052.    Else 
  10053.     Print " soldi";
  10054.    End If 
  10055.    Proc _ASPETTA
  10056.   End If 
  10057.  End If 
  10058. End Proc
  10059. Procedure PRENDIPA[AZIONE,P]
  10060.  A=PARAAAZIONEP(AZIONE,P)
  10061.  If POSIZIONEP(A)=POSIZIONEP(P)
  10062.   POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  10063.   Add PESONETTOP(P),PESOP(A)*1000
  10064.   Add PESONETTOP(P),PESONETTOP(A)
  10065.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  10066.    Print NOMEP$(P);" prende ";NOMEP$(A)
  10067.   End If 
  10068.   FINEA(AZIONE,P)=True
  10069.  End If 
  10070. End Proc
  10071. Procedure PRENDIUNOGGETTO
  10072.  For A=0 To NUMEROCO
  10073.   If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  10074.   If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  10075.  Next A
  10076.  If CATEGORIEOGGETTI>0
  10077.   If CATEGORIEOGGETTI>1
  10078.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi prendere ?>";OGGETTO$;
  10079.    Curs Off 
  10080.    If OGGETTO$<>""
  10081.     For A=0 To NUMEROO
  10082.      If POSIZIONEO(A)=POSIZIONEP(0)
  10083.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  10084.        If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  10085.         Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESCO$(CATEGORIAO(A));", ï¿½ residente";
  10086.         If _MUSICA=False
  10087.          Bell 1
  10088.         End If 
  10089.        Else 
  10090.         POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  10091.         Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  10092.         Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  10093.         If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  10094.          For B=0 To NUMEROO
  10095.           If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  10096.            If Btst(1,TIPOO(B))=True
  10097.             Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  10098.            Else 
  10099.             Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  10100.            End If 
  10101.           End If 
  10102.          Next B
  10103.          For B=1 To NUMEROP
  10104.           If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  10105.            Add PESONETTOP(0),PESOP(B)*1000
  10106.            Add PESONETTOP(0),PESONETTOP(B)
  10107.           End If 
  10108.          Next B
  10109.         End If 
  10110.         COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10111.         Print "Hai deciso di prendere 1 ";NOMESCO$(CATEGORIAO(A));
  10112.        End If 
  10113.        Proc _ASPETTA : Exit 
  10114.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  10115.        If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  10116.         Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESRO$(CATEGORIAO(A));", ï¿½ residente";
  10117.         If _MUSICA=False
  10118.          Bell 1
  10119.         End If 
  10120.        Else 
  10121.         POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  10122.         Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  10123.         Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(A))
  10124.         If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  10125.          For B=0 To NUMEROO
  10126.           If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  10127.            If Btst(1,TIPOO(B))=True
  10128.             Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  10129.            Else 
  10130.             Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  10131.            End If 
  10132.           End If 
  10133.          Next B
  10134.          For B=1 To NUMEROP
  10135.           If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  10136.            Add PESONETTOP(0),PESOP(B)*1000
  10137.            Add PESONETTOP(0),PESONETTOP(B)
  10138.           End If 
  10139.          Next B
  10140.         End If 
  10141.         COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10142.         Print "Hai deciso di prendere 1 ";NOMESRO$(CATEGORIAO(A));
  10143.        End If 
  10144.        Proc _ASPETTA : Exit 
  10145.       End If 
  10146.      End If 
  10147.     Next A
  10148.     If A=NUMEROO+1
  10149.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  10150.      If _MUSICA=False
  10151.       Bell 1
  10152.      End If 
  10153.      Proc _ASPETTA
  10154.     End If 
  10155.    End If 
  10156.   Else 
  10157.    For A=0 To NUMEROO
  10158.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  10159.      POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  10160.      If Btst(1,TIPOO(A))=True
  10161.       Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  10162.      Else 
  10163.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  10164.      End If 
  10165.      Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  10166.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  10167.       For B=0 To NUMEROO
  10168.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  10169.         If Btst(1,TIPOO(B))=True
  10170.          Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  10171.         Else 
  10172.          Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  10173.         End If 
  10174.        End If 
  10175.       Next B
  10176.       For B=1 To NUMEROP
  10177.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  10178.         Add PESONETTOP(0),PESOP(B)*1000
  10179.         Add PESONETTOP(0),PESONETTOP(B)
  10180.        End If 
  10181.       Next B
  10182.      End If 
  10183.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10184.      Print "Hai deciso di prendere 1 ";
  10185.      If Btst(1,TIPOO(A))=True
  10186.       Print NOMESRO$(CATEGORIAO(A));
  10187.      Else 
  10188.       Print NOMESCO$(CATEGORIAO(A));
  10189.      End If 
  10190.      Proc _ASPETTA : Exit 
  10191.     End If 
  10192.    Next A
  10193.   End If 
  10194.  End If 
  10195. End Proc
  10196. Procedure PRENDIUNPERSONAGGIO
  10197.  For A=1 To NUMEROP
  10198.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGI
  10199.  Next A
  10200.  If PERSONAGGI>0
  10201.   If PERSONAGGI>1
  10202.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi prendere ?>";PERSONAGGIO$;
  10203.    Curs Off 
  10204.    If PERSONAGGIO$<>""
  10205.     For A=1 To NUMEROP
  10206.      If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10207.       POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  10208.       Add PESONETTOP(0),PESOP(A)*1000
  10209.       Add PESONETTOP(0),PESONETTOP(A)
  10210.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10211.       Print "Hai deciso di prendere ";NOMEP$(A);
  10212.       Proc _ASPETTA : Exit 
  10213.      End If 
  10214.     Next A
  10215.     If A=NUMEROP+1
  10216.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  10217.      If _MUSICA=False
  10218.       Bell 1
  10219.      End If 
  10220.      Proc _ASPETTA
  10221.     End If 
  10222.    End If 
  10223.   Else 
  10224.    For A=1 To NUMEROP
  10225.     If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10226.      POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  10227.      Add PESONETTOP(0),PESOP(A)*1000
  10228.      Add PESONETTOP(0),PESONETTOP(A)
  10229.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10230.      Print "Hai deciso di prendere ";NOMEP$(A);
  10231.      Proc _ASPETTA : Exit 
  10232.     End If 
  10233.    Next A
  10234.   End If 
  10235.  End If 
  10236. End Proc
  10237. Procedure SALVAUNFILE
  10238.  Show On : Cls 
  10239.  FILE$=Fsel$("*.Adv",NOMEFILE$,"Salva un file","di Adventures Conceiver")
  10240.  If Len(FILE$)>0
  10241.   If Upper$(Right$(FILE$,4))<>".ADV"
  10242.    FILE$=FILE$+".Adv"
  10243.   End If 
  10244.   Proc TIC["Sto salvando il file",ULTIMALINEA-1]
  10245.   Proc TIC[FILE$,ULTIMALINEA]
  10246.   Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO) : Proc _ASPETTA
  10247.  End If 
  10248.  Erase BANCO
  10249.  Hide On 
  10250. End Proc
  10251. Procedure SCOPODELGIOCO[NUOVOSCOPODELGIOCO]
  10252.  SCOPODELGIOCO=AZIONEP(7,0)
  10253.  PARA=PARAAAZIONEP(7,0)
  10254.  PARB=PARABAZIONEP(7,0)
  10255.  PARC=PARACAZIONEP(7,0)
  10256.  Cls 
  10257.  If NUOVOSCOPODELGIOCO=True
  10258.   If M0DIFICA=False
  10259.    Proc TIC[MESSAGGIO3$,0] : Print 
  10260.   End If 
  10261.   Print "Scopo del gioco>";
  10262.   If SCOPODELGIOCO=0
  10263.    Print "nessuno"
  10264.   Else If SCOPODELGIOCO=1
  10265.    Print "Dai a ";NOMEP$(PARA);PARB;" ";
  10266.    If PARB=1
  10267.     Print NOMESCO$(PARC)
  10268.    Else 
  10269.     Print NOMEPCO$(PARC)
  10270.    End If 
  10271.   Else If SCOPODELGIOCO=2
  10272.    Print "Dai a ";NOMEP$(PARA);PARB;" oggett";
  10273.    If PARB=1
  10274.     Print "o ";
  10275.    Else 
  10276.     Print "i ";
  10277.    End If 
  10278.    Proc MOSTRACATEGORIAPERAZIONE[PARC]
  10279.   Else If SCOPODELGIOCO=3
  10280.    Print "Dai a ";NOMEP$(PARA);PARB;" sold";
  10281.    If PARB=1
  10282.     Print "o"
  10283.    Else 
  10284.     Print "i"
  10285.    End If 
  10286.   Else If SCOPODELGIOCO=4
  10287.    Print "Guadagna";PARA;" sold";
  10288.    If PARA=1
  10289.     Print "o"
  10290.    Else 
  10291.     Print "i"
  10292.    End If 
  10293.   Else If SCOPODELGIOCO=5
  10294.    Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" ";
  10295.    If PARB=1
  10296.     Print NOMESCO$(PARC)
  10297.    Else 
  10298.     Print NOMEPCO$(PARC)
  10299.    End If 
  10300.   Else If SCOPODELGIOCO=6
  10301.    Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" oggett";
  10302.    If PARB=1
  10303.     Print "o ";
  10304.    Else 
  10305.     Print "i ";
  10306.    End If 
  10307.    Proc MOSTRACATEGORIAPERAZIONE[PARC]
  10308.   Else If SCOPODELGIOCO=7
  10309.    Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" sold";
  10310.    If PARB=1
  10311.     Print "o"
  10312.    Else 
  10313.     Print "i"
  10314.    End If 
  10315.   Else If SCOPODELGIOCO=8
  10316.    Print "Prendi";PARA;" ";
  10317.    If PARA=1
  10318.     Print NOMESCO$(PARB)
  10319.    Else 
  10320.     Print NOMEPCO$(PARB)
  10321.    End If 
  10322.   Else If SCOPODELGIOCO=9
  10323.    Print "Prendi";PARA;" oggett";
  10324.    If PARA=1
  10325.     Print "o ";
  10326.    Else 
  10327.     Print "i ";
  10328.    End If 
  10329.    Proc MOSTRACATEGORIAPERAZIONE[PARB]
  10330.   Else If SCOPODELGIOCO=10
  10331.    Print "Trova il personaggio";PARA;" di nome>";NOMEP$(PARA)
  10332.   Else If SCOPODELGIOCO=11
  10333.    Print "Uccidi il personaggio";PARA;" di nome>";NOMEP$(PARA)
  10334.   Else If SCOPODELGIOCO=12
  10335.    Print "Usa 1 ";NOMESCO$(PARA);" su 1 ";NOMESCO$(PARB)
  10336.   Else If SCOPODELGIOCO=13
  10337.    Print "Usa 1 ";NOMESCO$(PARA);" su 1 oggetto ";
  10338.    Proc MOSTRACATEGORIAPERAZIONE[PARB]
  10339.   Else If SCOPODELGIOCO=14
  10340.    Print "Usa 1 ";NOMESCO$(PARA);" su ";NOMEP$(PARB)
  10341.   Else If SCOPODELGIOCO=15
  10342.    Print "Usa 1 oggetto ";
  10343.    Proc MOSTRACATEGORIAPERAZIONE[PARA]
  10344.    Print Space$(17);"su 1 ";NOMESCO$(PARB)
  10345.   Else If SCOPODELGIOCO=16
  10346.    Print "Usa 1 oggetto ";
  10347.    Proc MOSTRACATEGORIAPERAZIONE[PARA]
  10348.    Print Space$(17);"su 1 oggetto ";
  10349.    Proc MOSTRACATEGORIAPERAZIONE[PARB]
  10350.   Else If SCOPODELGIOCO=17
  10351.    Print "Usa 1 oggetto ";
  10352.    Proc MOSTRACATEGORIAPERAZIONE[PARA]
  10353.    Print Space$(17);"su ";NOMEP$(PARB)
  10354.   Else If SCOPODELGIOCO=18
  10355.    Print "Vai nel luogo";PARA;" di nome>";NOMEL$(PARA)
  10356.   End If 
  10357.  Else 
  10358.   If NUOVOSCOPODELGIOCO=1
  10359.    'Dai al personaggio PARA PARB oggetti PARC 
  10360.    Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  10361.    If PERSONAGGIOACUIDARE$<>""
  10362.     PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  10363.     Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  10364.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  10365.     If NUMEROOGGETTIDADARE$<>""
  10366.      NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  10367.      Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  10368.      MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  10369.     End If 
  10370.    End If 
  10371.   Else If NUOVOSCOPODELGIOCO=2
  10372.    'Dai al personaggio PARA PARB oggetti di tipo PARC 
  10373.    Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  10374.    If PERSONAGGIOACUIDARE$<>""
  10375.     PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  10376.     Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  10377.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  10378.     If NUMEROOGGETTIDADARE$<>""
  10379.      NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  10380.      Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  10381.      MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  10382.     End If 
  10383.    End If 
  10384.   Else If NUOVOSCOPODELGIOCO=3
  10385.    'Dai al personaggio PARA PARB soldi
  10386.    Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  10387.    If PERSONAGGIOACUIDARE$<>""
  10388.     PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  10389.     Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  10390.     Locate 0,ULTIMALINEA : Input "Quanti soldi gli devi dare (1-65535) ?>";SOLDIDADARE$
  10391.     If SOLDIDADARE$<>""
  10392.      SOLDIDADARE=Val(SOLDIDADARE$)
  10393.      Proc LIMITI[SOLDIDADARE,1,65535] : PARB=Param
  10394.     End If 
  10395.    End If 
  10396.   Else If NUOVOSCOPODELGIOCO=4
  10397.    'Guadagna PARA soldi 
  10398.    Locate 0,ULTIMALINEA : Input "Quanti soldi devi guadagnare (1-65535) ?>";SOLDIDAGUADAGNARE$
  10399.    If SOLDIDAGUADAGNARE$<>""
  10400.     SOLDIDAGUADAGNARE=Val(SOLDIDAGUADAGNARE$)
  10401.     Proc LIMITI[SOLDIDAGUADAGNARE,1,65535] : PARA=Param
  10402.    End If 
  10403.   Else If NUOVOSCOPODELGIOCO=5
  10404.    'Lascia nel luogo PARA PARB oggetti PARC 
  10405.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  10406.    If LUOGOINCUILASCIARE$<>""
  10407.     LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  10408.     Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  10409.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi lasciare (1-65535) ?>";NUMEROOGGETTIDALASCIARE$
  10410.     If NUMEROOGGETTIDALASCIARE$<>""
  10411.      NUMEROOGGETTIDALASCIARE=Val(NUMEROOGGETTIDALASCIARE$)
  10412.      Proc LIMITI[NUMEROOGGETTIDALASCIARE,1,65535] : PARB=Param
  10413.      MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  10414.     End If 
  10415.    End If 
  10416.   Else If NUOVOSCOPODELGIOCO=6
  10417.    'Lascia nel luogo PARA PARB oggetti di tipo PARC 
  10418.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  10419.    If LUOGOINCUILASCIARE$<>""
  10420.     LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  10421.     Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  10422.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  10423.     If NUMEROOGGETTIDADARE$<>""
  10424.      NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  10425.      Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  10426.      MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  10427.     End If 
  10428.    End If 
  10429.   Else If NUOVOSCOPODELGIOCO=7
  10430.    'Lascia nel luogo PARA PARB soldi
  10431.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  10432.    If LUOGOINCUILASCIARE$<>""
  10433.     LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  10434.     Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  10435.     Locate 0,ULTIMALINEA : Input "Quanti soldi ci devi lasciare (1-65535) ?>";SOLDIDALASCIARE$
  10436.     If SOLDIDALASCIARE$<>""
  10437.      SOLDIDALASCIARE=Val(SOLDIDALASCIARE$)
  10438.      Proc LIMITI[SOLDIDALASCIARE,1,65535] : PARB=Param
  10439.     End If 
  10440.    End If 
  10441.   Else If NUOVOSCOPODELGIOCO=8
  10442.    'Prendi PARA oggetti PARB
  10443.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  10444.    If NUMEROOGGETTIDAPRENDERE$<>""
  10445.     NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  10446.     Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  10447.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  10448.    End If 
  10449.   Else If NUOVOSCOPODELGIOCO=9
  10450.    'Prendi PARA oggetti di tipo PARB
  10451.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  10452.    If NUMEROOGGETTIDAPRENDERE$<>""
  10453.     NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  10454.     Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  10455.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  10456.    End If 
  10457.   Else If NUOVOSCOPODELGIOCO=10
  10458.    'Trova il personaggio PARA 
  10459.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi trovare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODATROVARE$
  10460.    If PERSONAGGIODATROVARE$<>""
  10461.     PERSONAGGIODATROVARE=Val(PERSONAGGIODATROVARE$)
  10462.     Proc LIMITI[PERSONAGGIODATROVARE,1,NUMEROP] : PARA=Param
  10463.    End If 
  10464.   Else If NUOVOSCOPODELGIOCO=11
  10465.    'Uccidi il personaggio PARA  
  10466.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi uccidere (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODAUCCIDERE$
  10467.    If PERSONAGGIODAUCCIDERE$<>""
  10468.     PERSONAGGIODAUCCIDERE=Val(PERSONAGGIODAUCCIDERE$)
  10469.     Proc LIMITI[PERSONAGGIODAUCCIDERE,1,NUMEROP] : PARA=Param
  10470.    End If 
  10471.   Else If NUOVOSCOPODELGIOCO=12
  10472.    'Usa un'oggetto PARA su un'oggetto PARB
  10473.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  10474.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  10475.   Else If NUOVOSCOPODELGIOCO=13
  10476.    'Usa un'oggetto PARA su un'oggetto di tipo PARB
  10477.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  10478.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  10479.   Else If NUOVOSCOPODELGIOCO=14
  10480.    'Usa un'oggetto PARA sul personaggio PARB
  10481.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  10482.    Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  10483.    If PERSONAGGIOSUCUIUSARE$<>""
  10484.     PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  10485.     Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  10486.    End If 
  10487.   Else If NUOVOSCOPODELGIOCO=15
  10488.    'Usa un'oggetto di tipo PARA su un'oggetto PARB
  10489.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  10490.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  10491.   Else If NUOVOSCOPODELGIOCO=16
  10492.    'Usa un'oggetto di tipo PARA su un'oggetto di tipo PARB
  10493.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  10494.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  10495.   Else If NUOVOSCOPODELGIOCO=17
  10496.    'Usa 1 oggetto di tipo PARA sul personaggio PARB 
  10497.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  10498.    Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  10499.    If PERSONAGGIOSUCUIUSARE$<>""
  10500.     PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  10501.     Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  10502.    End If 
  10503.   Else If NUOVOSCOPODELGIOCO=18
  10504.    'Vai nel luogo PARA
  10505.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi andare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUIANDARE$
  10506.    If LUOGOINCUIANDARE$<>""
  10507.     LUOGOINCUIANDARE=Val(LUOGOINCUIANDARE$)
  10508.     Proc LIMITI[LUOGOINCUIANDARE,0,NUMEROL] : PARA=Param
  10509.    End If 
  10510.   End If 
  10511.   AZIONEP(7,0)=NUOVOSCOPODELGIOCO
  10512.   PARAAAZIONEP(7,0)=PARA
  10513.   PARABAZIONEP(7,0)=PARB
  10514.   PARACAZIONEP(7,0)=PARC
  10515.  End If 
  10516.  Curs Off 
  10517. End Proc
  10518. Procedure SEGUI[AZIONE,P]
  10519. End Proc
  10520. Procedure SEGUIPA[AZIONE,P]
  10521. End Proc
  10522. Procedure SETTASCHERMO
  10523.  Hide On 
  10524.  If Ntsc Then LUNGHEZZASCHERMO=200 Else LUNGHEZZASCHERMO=256
  10525.  ULTIMALINEA=LUNGHEZZASCHERMO/8-1
  10526.  Screen Open 0,640,LUNGHEZZASCHERMO,2,Hires : Curs Off : Flash Off 
  10527.  Palette $60,$CCC : Pen 1 : Paper 0 : Ink 1,0
  10528.  Set Curs 170,85,170,85,170,85,170,85
  10529.  Wait Vbl : Limit Mouse 
  10530. End Proc
  10531. Procedure SUONAUNMODULO[M0DO]
  10532.  If M0DO=True
  10533.   Show On 
  10534.   NOMEMODULO$=Fsel$("**","","Carica un modulo sonoro xTracker da ascoltare")
  10535.   If NOMEMODULO$<>""
  10536.    Track Loop Of : Track Stop 
  10537.    Track Load NOMEMODULO$,BANCOMODULO
  10538.    Track Play BANCOMODULO : Track Loop On 
  10539.   End If 
  10540.   Hide On 
  10541.  Else 
  10542.   M0DULO=Rnd(92)+1
  10543.   If M0DULO=93
  10544.    NOMEMODULOPP$="Lavoro:Musica/Moduli/Beacand.mod.pp"
  10545.   Else If M0DULO=92
  10546.    NOMEMODULOPP$="Lavoro:Musica/Moduli/ANewJob.mod.pp"
  10547.   Else 
  10548.    NOMEMODULOPP$="LAvoro:Musica/Moduli/mod."+Str$(M0DULO)-" "+".pp"
  10549.   End If 
  10550.   If NOMEMODULOPP$<>""
  10551.     Extension_5_0120 NOMEMODULOPP$,BANCOMODULO
  10552.    Bsave "RAM:ModuloXTracker",Start(BANCOMODULO) To Start(BANCOMODULO)+Length(BANCOMODULO)-1
  10553.    Track Load "RAM:ModuloXTracker",BANCOMODULO
  10554.    Track Loop Of : Track Stop 
  10555.    Track Play BANCOMODULO : Track Loop On 
  10556.   End If 
  10557.  End If 
  10558. End Proc[NOMEMODULO$]
  10559. Procedure TEMP0
  10560.  Print "Tempo trascorso>";
  10561.  If M0DOVISUALIZZAZIONETEMPO=True
  10562.   GIORNI=TEMP0TRASCORSO/1440 : Print Str$(GIORNI)-" ";
  10563.   If GIORNI=1
  10564.   Print " giorno"; Else Print " giorni";
  10565.   End If 
  10566.   _ORE=TEMP0TRASCORSO/60 mod 24 : Print _ORE;
  10567.   If _ORE=1
  10568.   Print " ora"; Else Print " ore";
  10569.   End If 
  10570.   M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  10571.   If M1NUTI=1
  10572.   Print " minuto" Else Print " minuti"
  10573.   End If 
  10574.  Else 
  10575.   GIORNI=TEMP0TRASCORSO/1440 : Print "Giorni";GIORNI;
  10576.   _ORE=TEMP0TRASCORSO/60 mod 24
  10577.   Print Using " #";_ORE/10; Using "#";_ORE mod 10;
  10578.   M1NUTI=TEMP0TRASCORSO mod 60
  10579.   Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  10580.  End If 
  10581. End Proc
  10582. Procedure TIC[TESTO$,LINEA]
  10583.  '-> Testo Invertito e Centrato by Stefano Regattin 
  10584.  'i> 23 maggio 1996 
  10585.  'm> 25 maggio 1996 
  10586.  '--------------------------------------------------------------------------- 
  10587.  'LINEA contiene il numero di linea dove si posizioner� il testo; se vale -1
  10588.  ' (True) il testo sar� posizionato alla linea dove si trova il cursore; in 
  10589.  ' questo caso sar� necessario un comando Print per spostare il cursore 
  10590.  '----------------------------------------------------------------------
  10591.  If LINEA=True Then L=Y Curs Else L=LINEA
  10592.  Locate 0,L : Inverse On : Cline : Centre TESTO$ : Inverse Off 
  10593. End Proc
  10594. Procedure TIPODILUOGO
  10595.  Print "Tipo di luogo>";TIPOL$(TIPOL(POSIZIONEP(0)))
  10596. End Proc
  10597. Procedure TIPODILUOGODIDESTINAZIONE
  10598.  Print "Tipo di luogo di destinazione>";TIPOL$(TIPOL(LUOGODIDESTINAZIONEP(0)))
  10599. End Proc
  10600. Procedure USA
  10601.  For A=0 To NUMEROCO
  10602.   If OGGETTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10603.   If RESTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10604.  Next A
  10605.  If CATEGORIEOGGETTI>0
  10606.   If CATEGORIEOGGETTI>1
  10607.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi usare ?>";OGGETTO$;
  10608.    Curs Off 
  10609.    If OGGETTO$<>""
  10610.     For A=0 To NUMEROO
  10611.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10612.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  10613.        Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10614.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  10615.        Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10616.       End If 
  10617.      End If 
  10618.     Next A
  10619.     If A=NUMEROO+1
  10620.      Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  10621.      If _MUSICA=False
  10622.       Bell 1
  10623.      End If 
  10624.      Proc _ASPETTA
  10625.     End If 
  10626.    End If 
  10627.   Else 
  10628.    For A=0 To NUMEROO
  10629.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10630.      Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10631.     End If 
  10632.    Next A
  10633.   End If 
  10634.  Else 
  10635.   Print At(0,ULTIMALINEA);"Non hai oggetti da usare";
  10636.   If _MUSICA=False
  10637.    Bell 1
  10638.   End If 
  10639.   Proc _ASPETTA
  10640.  End If 
  10641. End Proc
  10642. Procedure USASUOGGETTO[O,Q]
  10643.  COMPIUTAAZIONE=1
  10644.  If TIPOCO(CATEGORIAO(O))=%100000
  10645.   Locate 0,ULTIMALINEA
  10646.   If Btst(1,TIPOO(O))=True
  10647.    Print "Non puoi ammaliare 1 ";
  10648.    If Btst(1,TIPOO(Q))=True
  10649.     Print NOMESRO$(CATEGORIAO(Q));
  10650.    Else 
  10651.     Print NOMESCO$(CATEGORIAO(Q));
  10652.    End If 
  10653.    Print " con 1 ";NOMESRO$(CATEGORIAO(O))
  10654.   Else 
  10655.    Print "Hai deciso di ammaliare 1 ";
  10656.    If Btst(1,TIPOO(Q))=True
  10657.     Print NOMESRO$(CATEGORIAO(Q));
  10658.    Else 
  10659.     Print NOMESCO$(CATEGORIAO(Q));
  10660.    End If 
  10661.    Print " con 1 ";
  10662.    If Btst(1,TIPOO(O))=True
  10663.     Print NOMESRO$(CATEGORIAO(O));
  10664.    Else 
  10665.     Print NOMESCO$(CATEGORIAO(O));
  10666.    End If 
  10667.    MAGIA=PARATIPOCO(CATEGORIAO(O))/$10000
  10668.    PARMAGIA=PARATIPOCO(CATEGORIAO(O)) mod $10000
  10669.    If MAGIA=0
  10670.     'Cambia la categoria dell'oggetto, cio� lo trasforma in un'altro oggetto 
  10671.     CATEGORIAO(Q)=PARMAGIA
  10672.    Else If MAGIA=1
  10673.     'Fa diventare l'oggetto il resto dell'oggetto e viceversa
  10674.     Bchg 1,TIPOO(Q)
  10675.    Else If MAGIA=2
  10676.     'Fa diventare l'oggetto il resto di un oggetto e crea un nuovo oggetto della 
  10677.     ' categoria indicata dal parametro PARMAGIA
  10678.     Bclr 1,TIPOO(Q)
  10679.     Inc NUMEROO
  10680.     CATEGORIAO(NUMEROO)=PARMAGIA
  10681.     POSIZIONEO(NUMEROO)=POSIZIONEO(Q)
  10682.    End If 
  10683.   End If 
  10684.  Else 
  10685.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di usare 1 ";
  10686.   If Btst(1,TIPOO(O))=True
  10687.    Print NOMESRO$(CATEGORIAO(O));
  10688.   Else 
  10689.    Print NOMESCO$(CATEGORIAO(O));
  10690.   End If 
  10691.   Print " su 1 ";
  10692.   If Btst(1,TIPOO(Q))=True
  10693.    Print NOMESRO$(CATEGORIAO(Q));
  10694.   Else 
  10695.    Print NOMESCO$(CATEGORIAO(Q));
  10696.   End If 
  10697.  End If 
  10698.  OGGETTOUSANTE=O
  10699.  OGGETTOUSATO=Q
  10700.  Proc _ASPETTA
  10701. End Proc
  10702. Procedure USASUOGGETTOP[O,P,Q]
  10703.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  10704.   Print NOMEP$(P);" sta usando 1 ";
  10705.   If Btst(1,TIPOO(O))=True
  10706.    Print NOMESRO$(CATEGORIAO(O));
  10707.   Else 
  10708.    Print NOMESCO$(CATEGORIAO(O));
  10709.   End If 
  10710.   Print " su 1 ";
  10711.   If Btst(1,TIPOO(Q))=True
  10712.    Print NOMESRO$(CATEGORIAO(Q))
  10713.   Else 
  10714.    Print NOMESCO$(CATEGORIAO(Q))
  10715.   End If 
  10716.  End If 
  10717. End Proc
  10718. Procedure USASUPERSONAGGIO[O,P]
  10719.  Locate 0,ULTIMALINEA : Cline 
  10720.  If P=0
  10721.   If TIPOCO(CATEGORIAO(O))=%1
  10722.    If Btst(1,TIPOO(O))=True
  10723.     Print "Non puoi mangiarti 1"; : RESTO=True
  10724.     If _MUSICA=False
  10725.      Bell 1
  10726.     End If 
  10727.    Else 
  10728.     COMPIUTAAZIONE=1
  10729.     Print "Hai deciso di mangiarti 1";
  10730.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  10731.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10732.     Bset 1,TIPOO(O)
  10733.     Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10734.     RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10735.    End If 
  10736.   Else If TIPOCO(CATEGORIAO(O))=%100
  10737.    If Btst(1,TIPOO(O))=True
  10738.     Print "Non puoi difenderti con 1"; : RESTO=True
  10739.     If _MUSICA=False
  10740.      Bell 1
  10741.     End If 
  10742.    Else 
  10743.     COMPIUTAAZIONE=1
  10744.     Print "Hai deciso di difenderti con 1";
  10745.     Bset 2,TIPOO(O)
  10746.    End If 
  10747.   Else If TIPOCO(CATEGORIAO(O))=%1000
  10748.    If Btst(1,TIPOO(O))=True
  10749.     Print "Non puoi leggerti 1"; : RESTO=True
  10750.     If _MUSICA=False
  10751.      Bell 1
  10752.     End If 
  10753.    Else 
  10754.     COMPIUTAAZIONE=1
  10755.     Print "Hai deciso di leggerti 1"; : PERSONAGGIO0DEVELEGGERE=True
  10756.    End If 
  10757.   Else If TIPOCO(CATEGORIAO(O))=%10001
  10758.    If Btst(1,TIPOO(O))=True
  10759.     Print "Non puoi berti 1"; : RESTO=True
  10760.     If _MUSICA=False
  10761.      Bell 1
  10762.     End If 
  10763.    Else 
  10764.     COMPIUTAAZIONE=1
  10765.     Print "Hai deciso di berti 1";
  10766.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  10767.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10768.     Bset 1,TIPOO(O)
  10769.     Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10770.     RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10771.    End If 
  10772.   Else If TIPOCO(CATEGORIAO(O))=%100000
  10773.    If Btst(1,TIPOO(O))=True
  10774.     Print "Non puoi ammaliarti con 1"; : RESTO=True
  10775.     If _MUSICA=False
  10776.      Bell 1
  10777.     End If 
  10778.    Else 
  10779.     COMPIUTAAZIONE=1
  10780.     Print "Hai deciso di ammaliarti con 1";
  10781.    End If 
  10782.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  10783.    If Btst(1,TIPOO(O))=True
  10784.     Print "Non puoi colpirti con 1"; : RESTO=True
  10785.     If _MUSICA=False
  10786.      Bell 1
  10787.     End If 
  10788.    Else 
  10789.     COMPIUTAAZIONE=1
  10790.     Print "Hai deciso di colpirti con 1";
  10791.     RESISTENZA=RESISTENZAP(0)
  10792.     Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10793.     For A=0 To NUMEROO
  10794.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10795.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10796.        Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10797.       End If 
  10798.      End If 
  10799.     Next A
  10800.     Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10801.    End If 
  10802.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  10803.    If Btst(1,TIPOO(O))=True
  10804.     Print "Non puoi colpirti con 1"; : RESTO=True
  10805.     If _MUSICA=False
  10806.      Bell 1
  10807.     End If 
  10808.    Else 
  10809.     COMPIUTAAZIONE=1
  10810.     Print "Hai deciso di colpirti con 1";
  10811.     RESISTENZA=RESISTENZAP(0)
  10812.     Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10813.     For A=0 To NUMEROO
  10814.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10815.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10816.        Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10817.       End If 
  10818.      End If 
  10819.     Next A
  10820.     Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10821.    End If 
  10822.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10823.    If Btst(1,TIPOO(O))=True
  10824.     Print "Non puoi colpirti con 1"; : RESTO=True
  10825.     If _MUSICA=False
  10826.      Bell 1
  10827.     End If 
  10828.    Else 
  10829.     For A=0 To NUMEROO
  10830.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10831.       OGGETTIVINCOLANTIPOSSEDUTI=True
  10832.      End If 
  10833.     Next A
  10834.     If OGGETTIVINCOLANTIPOSSEDUTI=True
  10835.      COMPIUTAAZIONE=1
  10836.      Print "Hai deciso di colpirti con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10837.      RESISTENZA=RESISTENZAP(0)
  10838.      For A=0 To NUMEROO
  10839.       If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10840.        V=A
  10841.       End If 
  10842.      Next A
  10843.      Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(V))*25
  10844.      For A=0 To NUMEROO
  10845.       If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10846.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10847.         Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10848.        End If 
  10849.       End If 
  10850.      Next A
  10851.      Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10852.     Else 
  10853.      Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10854.      If _MUSICA=False
  10855.       Bell 1
  10856.      End If 
  10857.     End If 
  10858.    End If 
  10859.   End If 
  10860.  Else 
  10861.   If TIPOCO(CATEGORIAO(O))=%1
  10862.    If Btst(1,TIPOO(O))=True
  10863.     Print "Non puoi far mangiare a ";NOMEP$(P);" 1"; : RESTO=True
  10864.     If _MUSICA=False
  10865.      Bell 1
  10866.     End If 
  10867.    Else 
  10868.     COMPIUTAAZIONE=1
  10869.     Print "Hai deciso di far mangiare a ";NOMEP$(P);" 1";
  10870.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10871.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10872.     POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10873.     Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10874.     Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  10875.     Bset 1,TIPOO(O)
  10876.     Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10877.     RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10878.    End If 
  10879.   Else If TIPOCO(CATEGORIAO(O))=%100
  10880.    If Btst(1,TIPOO(O))=True
  10881.     Print "Non puoi difendere ";NOMEP$(P);" con 1"; : RESTO=True
  10882.     If _MUSICA=False
  10883.      Bell 1
  10884.     End If 
  10885.    Else 
  10886.     COMPIUTAAZIONE=1
  10887.     Print "Hai deciso di difendere ";NOMEP$(P);" con 1";
  10888.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10889.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10890.     POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10891.     Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10892.     Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  10893.     Bset 2,TIPOO(O)
  10894.    End If 
  10895.   Else If TIPOCO(CATEGORIAO(O))=%1000
  10896.    If Btst(1,TIPOO(O))=True
  10897.     Print "Non puoi far leggere a ";NOMEP$(P);" 1"; : RESTO=True
  10898.     If _MUSICA=False
  10899.      Bell 1
  10900.     End If 
  10901.    Else 
  10902.     COMPIUTAAZIONE=1
  10903.     Print "Hai deciso di far leggere a ";NOMEP$(P);" 1";
  10904.    End If 
  10905.   Else If TIPOCO(CATEGORIAO(O))=%10001
  10906.    If Btst(1,TIPOO(O))=True
  10907.     Print "Non puoi far bere a ";NOMEP$(P);" 1"; : RESTO=True
  10908.     If _MUSICA=False
  10909.      Bell 1
  10910.     End If 
  10911.    Else 
  10912.     COMPIUTAAZIONE=1
  10913.     Print "Hai deciso di far bere a ";NOMEP$(P);" 1";
  10914.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10915.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10916.     POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10917.     Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10918.     Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  10919.     Bset 1,TIPOO(O)
  10920.     Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10921.     RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10922.    End If 
  10923.   Else If TIPOCO(CATEGORIAO(O))=%100000
  10924.    If Btst(1,TIPOO(O))=True
  10925.     Print "Non puoi ammaliare ";NOMEP$(P);" con 1"; : RESTO=True
  10926.     If _MUSICA=False
  10927.      Bell 1
  10928.     End If 
  10929.    Else 
  10930.     COMPIUTAAZIONE=1
  10931.     Print "Hai deciso di ammaliare ";NOMEP$(P);" con 1";
  10932.    End If 
  10933.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  10934.    If Btst(1,TIPOO(O))=True
  10935.     Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10936.     If _MUSICA=False
  10937.      Bell 1
  10938.     End If 
  10939.    Else 
  10940.     COMPIUTAAZIONE=1
  10941.     Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10942.     RESISTENZA=RESISTENZAP(P)
  10943.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10944.     For A=0 To NUMEROO
  10945.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10946.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10947.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10948.       End If 
  10949.      End If 
  10950.     Next A
  10951.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10952.    End If 
  10953.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  10954.    If Btst(1,TIPOO(O))=True
  10955.     Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10956.     If _MUSICA=False
  10957.      Bell 1
  10958.     End If 
  10959.    Else 
  10960.     COMPIUTAAZIONE=1
  10961.     Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10962.     RESISTENZA=RESISTENZAP(P)
  10963.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10964.     For A=0 To NUMEROO
  10965.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10966.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10967.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10968.       End If 
  10969.      End If 
  10970.     Next A
  10971.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10972.    End If 
  10973.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10974.    If Btst(1,TIPOO(O))=True
  10975.     Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10976.     If _MUSICA=False
  10977.      Bell 1
  10978.     End If 
  10979.    Else 
  10980.     For A=0 To NUMEROO
  10981.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10982.       OGGETTIVINCOLANTIPOSSEDUTI=True
  10983.      End If 
  10984.     Next A
  10985.     If OGGETTIVINCOLANTIPOSSEDUTI=True
  10986.      COMPIUTAAZIONE=1
  10987.      Print "Hai deciso di colpire ";NOMEP$(P);" con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10988.      RESISTENZA=RESISTENZAP(0)
  10989.      For A=0 To NUMEROO
  10990.       If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10991.        V=A
  10992.       End If 
  10993.      Next A
  10994.      Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10995.      If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10996.       POSIZIONEO(V)= Not P : Bset 0,TIPOO(V)
  10997.       Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(V))
  10998.       Add PESONETTOP(P),PESOCO(CATEGORIAO(V))
  10999.       Inc OGGETTODATOOLASCIATO(CATEGORIAO(V))
  11000.      End If 
  11001.      For A=0 To NUMEROO
  11002.       If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11003.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11004.         Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11005.        End If 
  11006.       End If 
  11007.      Next A
  11008.      Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11009.     Else 
  11010.      Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  11011.      If _MUSICA=False
  11012.       Bell 1
  11013.      End If 
  11014.     End If 
  11015.    End If 
  11016.   End If 
  11017.  End If 
  11018.  Print " ";
  11019.  If RESTO=True
  11020.   Print NOMESRO$(CATEGORIAO(O));
  11021.  Else 
  11022.   Print NOMESCO$(CATEGORIAO(O));
  11023.  End If 
  11024.  OGGETTOUSANTE=O
  11025.  PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=P
  11026.  If P>0 and RESISTENZAP(P)=0 Then Proc MORTE[P]
  11027.  Proc _ASPETTA
  11028.  If PERSONAGGIO0DEVELEGGERE=True
  11029.   Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  11030.   PERSONAGGIO0DEVELEGGERE=False
  11031.  End If 
  11032. End Proc
  11033. Procedure USASUPERSONAGGIOP[O,P,Q]
  11034.  If P=Q Then Pop Proc
  11035.  If Btst(1,TIPOO(O))=False
  11036.   If Btst(2,TIPOP(0))=False
  11037.    PERSONAGGIO0SVEGLIO=True
  11038.   End If 
  11039.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  11040.    PERSONAGGIOVISIBILE=True
  11041.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  11042.    PERSONAGGIOVISIBILE=True
  11043.   Else If POSIZIONEP(P)=-1-Q and Btst(0,TIPOP(P))=True
  11044.    If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  11045.     PERSONAGGIOVISIBILE=True
  11046.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  11047.     PERSONAGGIOVISIBILE=True
  11048.    End If 
  11049.   End If 
  11050.   If TIPOCO(CATEGORIAO(O))=%1
  11051.    If Q>0
  11052.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11053.      AZIONE$="sta facendo mangiare a "+NOMEP$(Q)+" 1"
  11054.     End If 
  11055.    Else 
  11056.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11057.      AZIONE$="ti sta facendo mangiare 1"
  11058.     End If 
  11059.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  11060.    End If 
  11061.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  11062.    POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  11063.    Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  11064.    Bset 1,TIPOO(O)
  11065.    Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  11066.    RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  11067.   Else If TIPOCO(CATEGORIAO(O))=%100
  11068.    If Q>0
  11069.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11070.      AZIONE$="sta difendendo "+NOMEP$(Q)+" con 1"
  11071.     End If 
  11072.    Else 
  11073.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11074.      AZIONE$="ti sta difendendo con 1"
  11075.     End If 
  11076.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  11077.    End If 
  11078.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  11079.    POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  11080.    Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  11081.    Bset 2,TIPOO(O)
  11082.   Else If TIPOCO(CATEGORIAO(O))=%1000
  11083.    If Q>0
  11084.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11085.      AZIONE$="sta facendo leggere a "+NOMEP$(Q)+" 1"
  11086.     End If 
  11087.    Else 
  11088.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11089.      AZIONE$="ti sta facendo leggere 1" : PERSONAGGIO0DEVELEGGERE=True
  11090.     End If 
  11091.    End If 
  11092.   Else If TIPOCO(CATEGORIAO(O))=%10001
  11093.    If Q>0
  11094.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11095.      AZIONE$="sta facendo bere a "+NOMEP$(Q)+" 1"
  11096.     End If 
  11097.    Else 
  11098.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11099.      AZIONE$="ti sta facendo bere 1"
  11100.     End If 
  11101.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  11102.    End If 
  11103.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  11104.    POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  11105.    Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  11106.    Bset 1,TIPOO(O)
  11107.    Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  11108.    RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  11109.   Else If TIPOCO(CATEGORIAO(O))=%100000
  11110.    If Q>0
  11111.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11112.      AZIONE$="sta ammaliando "+NOMEP$(Q)+" con 1"
  11113.     End If 
  11114.    Else 
  11115.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11116.      AZIONE$="ti sta ammaliando con 1"
  11117.     End If 
  11118.    End If 
  11119.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  11120.    If Q>0
  11121.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11122.      AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1"
  11123.     End If 
  11124.    Else 
  11125.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11126.      AZIONE$="ti sta colpendo con 1"
  11127.     End If 
  11128.    End If 
  11129.    RESISTENZA=RESISTENZAP(Q)
  11130.    Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  11131.    For A=0 To NUMEROO
  11132.     If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  11133.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11134.       Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  11135.      End If 
  11136.     End If 
  11137.    Next A
  11138.    Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  11139.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  11140.    If Q>0
  11141.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11142.      AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1"
  11143.     End If 
  11144.    Else 
  11145.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11146.      AZIONE$="ti sta colpendo con 1"
  11147.     End If 
  11148.    End If 
  11149.    RESISTENZA=RESISTENZAP(Q)
  11150.    Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  11151.    For A=0 To NUMEROO
  11152.     If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  11153.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11154.       Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  11155.      End If 
  11156.     End If 
  11157.    Next A
  11158.    Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  11159.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  11160.    For A=0 To NUMEROO
  11161.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  11162.      OGGETTIVINCOLANTIPOSSEDUTI=True
  11163.     End If 
  11164.    Next A
  11165.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  11166.     If Q>0
  11167.      If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11168.       AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1 "+NOMESCO$(PARATIPOCO(CATEGORIAO(O)))+" usando 1"
  11169.      End If 
  11170.     Else 
  11171.      If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11172.       AZIONE$="ti sta colpendo con 1 "+NOMESCO$(PARATIPOCO(CATEGORIAO(O)))+" usando 1"
  11173.      End If 
  11174.     End If 
  11175.     RESISTENZA=RESISTENZAP(Q)
  11176.     For A=0 To NUMEROO
  11177.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  11178.       V=A
  11179.      End If 
  11180.     Next A
  11181.     Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(V))*25
  11182.     If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  11183.      If Q=0
  11184.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(V))
  11185.      End If 
  11186.      POSIZIONEO(V)=-1-Q : Bset 0,TIPOO(V)
  11187.      Add PESONETTOP(Q),PESOCO(CATEGORIAO(V))
  11188.     End If 
  11189.     For A=0 To NUMEROO
  11190.      If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  11191.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11192.        Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  11193.       End If 
  11194.      End If 
  11195.     Next A
  11196.     Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  11197.    End If 
  11198.   End If 
  11199.   If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True and AZIONE$<>""
  11200.    Print NOMEP$(P);" ";AZIONE$;" ";NOMESCO$(CATEGORIAO(O))
  11201.   End If 
  11202.   If Q>0 and RESISTENZAP(Q)=0
  11203.    If PERSONAGGIOVISIBILE=True
  11204.     Proc MORTE[Q]
  11205.    End If 
  11206.   End If 
  11207.   If PERSONAGGIO0DEVELEGGERE=True
  11208.    Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  11209.    PERSONAGGIO0DEVELEGGERE=False
  11210.   End If 
  11211.  End If 
  11212. End Proc
  11213. Procedure USASUUNOGGETTO[O]
  11214.  For A=0 To NUMEROCO
  11215.   If OGGETTINELLUOGO(A)>0
  11216.    Inc CATEGORIEOGGETTI
  11217.   End If 
  11218.   If RESTINELLUOGO(A)>0
  11219.    Inc CATEGORIEOGGETTI
  11220.   End If 
  11221.  Next A
  11222.  If CATEGORIEOGGETTI>0
  11223.   If CATEGORIEOGGETTI>1
  11224.    Locate 0,ULTIMALINEA : Input "Su quale oggetto vuoi usare ?>";OGGETTO$;
  11225.    Curs Off 
  11226.    If OGGETTO$<>""
  11227.     For A=0 To NUMEROO
  11228.      If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  11229.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  11230.        Proc USASUOGGETTO[O,A] : Exit 
  11231.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  11232.        Proc USASUOGGETTO[O,A] : Exit 
  11233.       End If 
  11234.      End If 
  11235.     Next A
  11236.     If A=NUMEROO+1
  11237.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  11238.      If _MUSICA=False
  11239.       Bell 1
  11240.      End If 
  11241.      Proc _ASPETTA
  11242.     End If 
  11243.    End If 
  11244.   Else 
  11245.    For A=0 To NUMEROO
  11246.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  11247.      Proc USASUOGGETTO[O,A] : Exit 
  11248.     End If 
  11249.    Next A
  11250.   End If 
  11251.  End If 
  11252. End Proc
  11253. Procedure USASUUNPERSONAGGIO[O]
  11254.  For A=0 To NUMEROP
  11255.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  11256.    Inc PERSONAGGI
  11257.   Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  11258.    Inc PERSONAGGI
  11259.   End If 
  11260.  Next A
  11261.  If PERSONAGGI>1
  11262.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare ?>";PERSONAGGIO$;
  11263.   Curs Off 
  11264.   If PERSONAGGIO$<>""
  11265.    PERSONAGGIO$=Lower$(PERSONAGGIO$)
  11266.    If PERSONAGGIO$="me"
  11267.     USASUPERSONAGGIO[O,0]
  11268.    Else 
  11269.     For A=1 To NUMEROP
  11270.      If PERSONAGGIO$=Lower$(NOMEP$(A))
  11271.       If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  11272.        USASUPERSONAGGIO[O,A] : Exit 
  11273.       Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  11274.        USASUPERSONAGGIO[O,A] : Exit 
  11275.       End If 
  11276.      End If 
  11277.     Next A
  11278.     If A=NUMEROP+1
  11279.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  11280.      If _MUSICA=False
  11281.       Bell 1
  11282.      End If 
  11283.      Proc _ASPETTA
  11284.     End If 
  11285.    End If 
  11286.   End If 
  11287.  Else 
  11288.   USASUPERSONAGGIO[O,0]
  11289.  End If 
  11290. End Proc
  11291. Procedure USATI[O,P]
  11292.  If Btst(1,TIPOO(O))=False
  11293.   If Btst(2,TIPOP(0))=False
  11294.    If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  11295.     PERSONAGGIOVISIBILE=True
  11296.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  11297.     PERSONAGGIOVISIBILE=True
  11298.    Else If POSIZIONEP(P)=-1 and Btst(0,TIPOP(P))=True
  11299.     PERSONAGGIOVISIBILE=True
  11300.    End If 
  11301.   End If 
  11302.   If PERSONAGGIOVISIBILE=True
  11303.    Print NOMEP$(P);" ";
  11304.   End If 
  11305.   If TIPOCO(CATEGORIAO(O))=%1
  11306.    If PERSONAGGIOVISIBILE=True
  11307.     Print "si sta mangiando 1";
  11308.    End If 
  11309.    Bset 1,TIPOO(O)
  11310.    If RESISTENZAP(P)<C0STITUZIONEP(P)
  11311.     Inc RESISTENZAP(P)
  11312.    End If 
  11313.   Else If TIPOCO(CATEGORIAO(O))=%100
  11314.    If PERSONAGGIOVISIBILE=True
  11315.     Print "si sta difendendo con 1";
  11316.    End If 
  11317.    Bset 2,TIPOO(O)
  11318.   Else If TIPOCO(CATEGORIAO(O))=%1000
  11319.    If PERSONAGGIOVISIBILE=True
  11320.     Print "si sta leggendo 1";
  11321.    End If 
  11322.   Else If TIPOCO(CATEGORIAO(O))=%10001
  11323.    If PERSONAGGIOVISIBILE=True
  11324.     Print "si sta bevendo 1";
  11325.    End If 
  11326.    Bset 1,TIPOO(O)
  11327.    If RESISTENZAP(P)<C0STITUZIONEP(P)
  11328.     Inc RESISTENZAP(P)
  11329.    End If 
  11330.   Else If TIPOCO(CATEGORIAO(O))=%100000
  11331.    If PERSONAGGIOVISIBILE=True
  11332.     Print "si sta ammaliando con 1";
  11333.    End If 
  11334.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  11335.    If PERSONAGGIOVISIBILE=True
  11336.     Print "si colpisce con 1";
  11337.    End If 
  11338.    RESISTENZA=RESISTENZAP(P)
  11339.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  11340.    For A=0 To NUMEROO
  11341.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11342.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=False
  11343.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11344.      End If 
  11345.     End If 
  11346.    Next A
  11347.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11348.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  11349.    If PERSONAGGIOVISIBILE=True
  11350.     Print "si colpisce con 1";
  11351.    End If 
  11352.    RESISTENZA=RESISTENZAP(P)
  11353.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  11354.    For A=0 To NUMEROO
  11355.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11356.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11357.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11358.      End If 
  11359.     End If 
  11360.    Next A
  11361.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11362.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  11363.    For A=0 To NUMEROO
  11364.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  11365.      OGGETTIVINCOLANTIPOSSEDUTI=True
  11366.     End If 
  11367.    Next A
  11368.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  11369.     If PERSONAGGIOVISIBILE=True
  11370.      Print "si colpisce con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  11371.     End If 
  11372.     RESISTENZA=RESISTENZAP(0)
  11373.     For A=0 To NUMEROO
  11374.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  11375.       V=A
  11376.      End If 
  11377.     Next A
  11378.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  11379.     For A=0 To NUMEROO
  11380.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11381.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11382.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11383.       End If 
  11384.      End If 
  11385.     Next A
  11386.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11387.    End If 
  11388.   End If 
  11389.   If PERSONAGGIOVISIBILE=True
  11390.    Print " ";NOMESCO$(CATEGORIAO(O))
  11391.   End If 
  11392.   If P>0 and RESISTENZAP(P)=0
  11393.    If PERSONAGGIOVISIBILE=True
  11394.     Proc MORTE[P]
  11395.    End If 
  11396.   End If 
  11397.  End If 
  11398. End Proc
  11399. Procedure USATIUNO[AZIONE,P]
  11400.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11401.  For A=0 To NUMEROO
  11402.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11403.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11404.    B=A
  11405.   End If 
  11406.  Next A
  11407.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11408.   Pop Proc
  11409.  End If 
  11410.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11411.   A=B
  11412.  Else 
  11413.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11414.   B=0
  11415.   For A=0 To NUMEROO
  11416.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11417.     OGGETTODELPERSONAGGIOP(B)=A
  11418.     Inc B
  11419.    End If 
  11420.   Next A
  11421.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11422.  End If 
  11423.  Proc USATI[A,P]
  11424. End Proc
  11425. Procedure USATIUNOA[AZIONE,P]
  11426.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11427.  For A=0 To NUMEROO
  11428.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11429.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11430.    B=A
  11431.   End If 
  11432.  Next A
  11433.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11434.   Pop Proc
  11435.  End If 
  11436.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11437.   A=B
  11438.  Else 
  11439.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11440.   B=0
  11441.   For A=0 To NUMEROO
  11442.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11443.     OGGETTODELPERSONAGGIOP(B)=A
  11444.     Inc B
  11445.    End If 
  11446.   Next A
  11447.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11448.  End If 
  11449.  Proc USATI[A,P]
  11450. End Proc
  11451. Procedure USATIUNOTA[AZIONE,P]
  11452.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11453.  For A=0 To NUMEROO
  11454.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11455.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11456.    B=A
  11457.   End If 
  11458.  Next A
  11459.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11460.   Pop Proc
  11461.  End If 
  11462.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11463.   A=B
  11464.  Else 
  11465.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11466.   B=0
  11467.   For A=0 To NUMEROO
  11468.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11469.     OGGETTODELPERSONAGGIOP(B)=A
  11470.     Inc B
  11471.    End If 
  11472.   Next A
  11473.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11474.  End If 
  11475.  Proc USATI[A,P]
  11476. End Proc
  11477. Procedure USAUNOSUAO[AZIONE,P]
  11478.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11479.  For A=0 To NUMEROO
  11480.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11481.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11482.    B=A
  11483.   End If 
  11484.  Next A
  11485.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11486.   Pop Proc
  11487.  End If 
  11488.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11489.   A=B
  11490.  Else 
  11491.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11492.   B=0
  11493.   For A=0 To NUMEROO
  11494.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11495.     OGGETTODELPERSONAGGIOP(B)=A
  11496.     Inc B
  11497.    End If 
  11498.   Next A
  11499.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11500.  End If 
  11501.  For B=0 To NUMEROO
  11502.   If POSIZIONEO(B)=POSIZIONEP(P)
  11503.    USASUOGGETTOP[A,P,B]
  11504.    Dec PARAAAZIONEP(AZIONE,P)
  11505.    If PARAAAZIONEP(AZIONE,P)=0
  11506.     FINEA(AZIONE,P)=True
  11507.    End If 
  11508.    Exit 
  11509.   End If 
  11510.  Next B
  11511. End Proc
  11512. Procedure USAUNOSUAOB[AZIONE,P]
  11513.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11514.  For A=0 To NUMEROO
  11515.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11516.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11517.    B=A
  11518.   End If 
  11519.  Next A
  11520.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11521.   Pop Proc
  11522.  End If 
  11523.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11524.   A=B
  11525.  Else 
  11526.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11527.   B=0
  11528.   For A=0 To NUMEROO
  11529.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11530.     OGGETTODELPERSONAGGIOP(B)=A
  11531.     Inc B
  11532.    End If 
  11533.   Next A
  11534.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11535.  End If 
  11536.  For B=0 To NUMEROO
  11537.   If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11538.    USASUOGGETTOP[A,P,B]
  11539.    Dec PARAAAZIONEP(AZIONE,P)
  11540.    If PARAAAZIONEP(AZIONE,P)=0
  11541.     FINEA(AZIONE,P)=True
  11542.    End If 
  11543.    Exit 
  11544.   End If 
  11545.  Next B
  11546. End Proc
  11547. Procedure USAUNOSUAOTB[AZIONE,P]
  11548.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11549.  For A=0 To NUMEROO
  11550.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11551.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11552.    B=A
  11553.   End If 
  11554.  Next A
  11555.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11556.   Pop Proc
  11557.  End If 
  11558.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11559.   A=B
  11560.  Else 
  11561.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11562.   B=0
  11563.   For A=0 To NUMEROO
  11564.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11565.     OGGETTODELPERSONAGGIOP(B)=A
  11566.     Inc B
  11567.    End If 
  11568.   Next A
  11569.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11570.  End If 
  11571.  For B=0 To NUMEROO
  11572.   If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11573.    USASUOGGETTOP[A,P,B]
  11574.    Dec PARAAAZIONEP(AZIONE,P)
  11575.    If PARAAAZIONEP(AZIONE,P)=0
  11576.     FINEA(AZIONE,P)=True
  11577.    End If 
  11578.    Exit 
  11579.   End If 
  11580.  Next B
  11581. End Proc
  11582. Procedure USAUNOSUAP[AZIONE,P]
  11583.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11584.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11585.   PERSONAGGIOTROVATO=A
  11586.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11587.   PERSONAGGIOTROVATO=A
  11588.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11589.   PERSONAGGIOTROVATO=A
  11590.  End If 
  11591.  If PERSONAGGIOTROVATO>-1
  11592.   For A=0 To NUMEROO
  11593.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11594.     USASUPERSONAGGIOP[A,P,PERSONAGGIOTROVATO]
  11595.     Dec PARAAAZIONEP(AZIONE,P)
  11596.     If PARAAAZIONEP(AZIONE,P)=0
  11597.      FINEA(AZIONE,P)=True
  11598.     End If 
  11599.     Exit 
  11600.    End If 
  11601.   Next A
  11602.  End If 
  11603. End Proc
  11604. Procedure USAUNOSUPA[AZIONE,P]
  11605.  A=PARAAAZIONEP(AZIONE,P)
  11606.  For B=0 To NUMEROO
  11607.   If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True
  11608.    If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11609.     Proc USASUPERSONAGGIOP[B,P,A]
  11610.     Exit 
  11611.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11612.     Proc USASUPERSONAGGIOP[B,P,A]
  11613.     Exit 
  11614.    Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11615.     Proc USASUPERSONAGGIOP[B,P,A]
  11616.     Exit 
  11617.    End If 
  11618.   End If 
  11619.  Next B
  11620. End Proc
  11621. Procedure USAUNOASUBO[AZIONE,P]
  11622.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11623.  For A=0 To NUMEROO
  11624.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11625.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11626.    B=A
  11627.   End If 
  11628.  Next A
  11629.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11630.   Pop Proc
  11631.  End If 
  11632.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11633.   A=B
  11634.  Else 
  11635.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11636.   B=0
  11637.   For A=0 To NUMEROO
  11638.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11639.     OGGETTODELPERSONAGGIOP(B)=A
  11640.     Inc B
  11641.    End If 
  11642.   Next A
  11643.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11644.  End If 
  11645.  For B=0 To NUMEROO
  11646.   If POSIZIONEO(B)=POSIZIONEP(P)
  11647.    USASUOGGETTOP[A,P,B]
  11648.    Dec PARABAZIONEP(AZIONE,P)
  11649.    If PARABAZIONEP(AZIONE,P)=0
  11650.     FINEA(AZIONE,P)=True
  11651.    End If 
  11652.    Exit 
  11653.   End If 
  11654.  Next B
  11655. End Proc
  11656. Procedure USAUNOASUBOC[AZIONE,P]
  11657.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11658.  For A=0 To NUMEROO
  11659.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11660.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11661.    B=A
  11662.   End If 
  11663.  Next A
  11664.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11665.   Pop Proc
  11666.  End If 
  11667.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11668.   A=B
  11669.  Else 
  11670.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11671.   B=0
  11672.   For A=0 To NUMEROO
  11673.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11674.     OGGETTODELPERSONAGGIOP(B)=A
  11675.     Inc B
  11676.    End If 
  11677.   Next A
  11678.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11679.  End If 
  11680.  For B=0 To NUMEROO
  11681.   If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11682.    USASUOGGETTOP[A,P,B]
  11683.    Dec PARABAZIONEP(AZIONE,P)
  11684.    If PARABAZIONEP(AZIONE,P)=0
  11685.     FINEA(AZIONE,P)=True
  11686.    End If 
  11687.    Exit 
  11688.   End If 
  11689.  Next B
  11690. End Proc
  11691. Procedure USAUNOASUBOTC[AZIONE,P]
  11692.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11693.  For A=0 To NUMEROO
  11694.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11695.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11696.    B=A
  11697.   End If 
  11698.  Next A
  11699.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11700.   Pop Proc
  11701.  End If 
  11702.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11703.   A=B
  11704.  Else 
  11705.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11706.   B=0
  11707.   For A=0 To NUMEROO
  11708.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11709.     OGGETTODELPERSONAGGIOP(B)=A
  11710.     Inc B
  11711.    End If 
  11712.   Next A
  11713.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11714.  End If 
  11715.  For B=0 To NUMEROO
  11716.   If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11717.    USASUOGGETTOP[A,P,B]
  11718.    Dec PARABAZIONEP(AZIONE,P)
  11719.    If PARABAZIONEP(AZIONE,P)=0
  11720.     FINEA(AZIONE,P)=True
  11721.    End If 
  11722.    Exit 
  11723.   End If 
  11724.  Next B
  11725. End Proc
  11726. Procedure USAUNOASUBP[AZIONE,P]
  11727.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11728.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11729.   PERSONAGGIOTROVATO=A
  11730.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11731.   PERSONAGGIOTROVATO=A
  11732.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11733.   PERSONAGGIOTROVATO=A
  11734.  End If 
  11735.  If PERSONAGGIOTROVATO>-1
  11736.   For A=0 To NUMEROO
  11737.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11738.     USASUPERSONAGGIOP[A,P,B]
  11739.     Dec PARABAZIONEP(AZIONE,P)
  11740.     If PARABAZIONEP(AZIONE,P)=0
  11741.      FINEA(AZIONE,P)=True
  11742.     End If 
  11743.     Exit 
  11744.    End If 
  11745.   Next A
  11746.  End If 
  11747. End Proc
  11748. Procedure USAUNOASUPB[AZIONE,P]
  11749.  A=PARABAZIONEP(AZIONE,P)
  11750.  For B=0 To NUMEROO
  11751.   If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and CATEGORIAO(B)=PARAAAZIONEP(AZIONE,P)
  11752.    If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11753.     Proc USASUPERSONAGGIOP[B,P,A]
  11754.     Exit 
  11755.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11756.     Proc USASUPERSONAGGIOP[B,P,A]
  11757.     Exit 
  11758.    Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11759.     Proc USASUPERSONAGGIOP[B,P,A]
  11760.     Exit 
  11761.    End If 
  11762.   End If 
  11763.  Next B
  11764. End Proc
  11765. Procedure USAUNOTASUBO[AZIONE,P]
  11766.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11767.  For A=0 To NUMEROO
  11768.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11769.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11770.    B=A
  11771.   End If 
  11772.  Next A
  11773.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11774.   Pop Proc
  11775.  End If 
  11776.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11777.   A=B
  11778.  Else 
  11779.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11780.   B=0
  11781.   For A=0 To NUMEROO
  11782.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11783.     OGGETTODELPERSONAGGIOP(B)=A
  11784.     Inc B
  11785.    End If 
  11786.   Next A
  11787.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11788.  End If 
  11789.  For B=0 To NUMEROO
  11790.   If POSIZIONEO(B)=POSIZIONEP(P)
  11791.    USASUOGGETTOP[A,P,B]
  11792.    Dec PARABAZIONEP(AZIONE,P)
  11793.    If PARABAZIONEP(AZIONE,P)=0
  11794.     FINEA(AZIONE,P)=True
  11795.    End If 
  11796.    Exit 
  11797.   End If 
  11798.  Next B
  11799. End Proc
  11800. Procedure USAUNOTASUBOC[AZIONE,P]
  11801.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11802.  For A=0 To NUMEROO
  11803.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11804.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11805.    B=A
  11806.   End If 
  11807.  Next A
  11808.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11809.   Pop Proc
  11810.  End If 
  11811.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11812.   A=B
  11813.  Else 
  11814.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11815.   B=0
  11816.   For A=0 To NUMEROO
  11817.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11818.     OGGETTODELPERSONAGGIOP(B)=A
  11819.     Inc B
  11820.    End If 
  11821.   Next A
  11822.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11823.  End If 
  11824.  For B=0 To NUMEROO
  11825.   If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11826.    USASUOGGETTOP[A,P,B]
  11827.    Dec PARABAZIONEP(AZIONE,P)
  11828.    If PARABAZIONEP(AZIONE,P)=0
  11829.     FINEA(AZIONE,P)=True
  11830.    End If 
  11831.    Exit 
  11832.   End If 
  11833.  Next B
  11834. End Proc
  11835. Procedure USAUNOTASUBOTC[AZIONE,P]
  11836.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11837.  For A=0 To NUMEROO
  11838.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11839.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11840.    B=A
  11841.   End If 
  11842.  Next A
  11843.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11844.   Pop Proc
  11845.  End If 
  11846.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11847.   A=B
  11848.  Else 
  11849.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11850.   B=0
  11851.   For A=0 To NUMEROO
  11852.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11853.     OGGETTODELPERSONAGGIOP(B)=A
  11854.     Inc B
  11855.    End If 
  11856.   Next A
  11857.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11858.  End If 
  11859.  For B=0 To NUMEROO
  11860.   If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11861.    USASUOGGETTOP[A,P,B]
  11862.    Dec PARABAZIONEP(AZIONE,P)
  11863.    If PARABAZIONEP(AZIONE,P)=0
  11864.     FINEA(AZIONE,P)=True
  11865.    End If 
  11866.    Exit 
  11867.   End If 
  11868.  Next B
  11869. End Proc
  11870. Procedure USAUNOTASUBP[AZIONE,P]
  11871.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11872.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11873.   PERSONAGGIOTROVATO=A
  11874.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11875.   PERSONAGGIOTROVATO=A
  11876.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11877.   PERSONAGGIOTROVATO=A
  11878.  End If 
  11879.  If PERSONAGGIOTROVATO>-1
  11880.   For A=0 To NUMEROO
  11881.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11882.     USASUPERSONAGGIOP[A,P,B]
  11883.     Dec PARABAZIONEP(AZIONE,P)
  11884.     If PARABAZIONEP(AZIONE,P)=0
  11885.      FINEA(AZIONE,P)=True
  11886.     End If 
  11887.     Exit 
  11888.    End If 
  11889.   Next A
  11890.  End If 
  11891. End Proc
  11892. Procedure USAUNOTASUPB[AZIONE,P]
  11893.  A=PARABAZIONEP(AZIONE,P)
  11894.  For B=0 To NUMEROO
  11895.   If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and TIPOCO(CATEGORIAO(B))=PARAAAZIONEP(AZIONE,P)
  11896.    If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11897.     Proc USASUPERSONAGGIOP[B,P,A]
  11898.     Exit 
  11899.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11900.     Proc USASUPERSONAGGIOP[B,P,A]
  11901.     Exit 
  11902.    Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11903.     Proc USASUPERSONAGGIOP[B,P,A]
  11904.     Exit 
  11905.    End If 
  11906.   End If 
  11907.  Next B
  11908. End Proc